【问题标题】:Loading Parquet File into a Hive Table stored as Parquet fail(values are null)将 Parquet 文件加载到存储为 Parquet 的 Hive 表中失败(值为空)
【发布时间】:2020-02-01 03:13:24
【问题描述】:

我只是想在 hive 中创建一个存储为 parquet 文件的表,然后将保存数据的 csv 文件转换为 parquet 文件,然后将其加载到 hdfs 目录中以插入 values.below是我正在做但无济于事的序列:

首先我在 Hive 中创建了一个表:

CREATE external table  if not EXISTS db1.managed_table55 (dummy string)
stored as parquet
location '/hadoop/db1/managed_table55';

然后我使用这个 spark 将 parquet 文件加载到上述 hdfs 位置:

df=spark.read.csv("/user/use_this.csv", header='true')
df.write.save('/hadoop/db1/managed_table55/test.parquet', format="parquet")

它加载但这里是输出......所有空值:

这是我转换为 parquet 文件的 use_this.csv 文件中的原始值:

这证明指定位置创建了表的文件夹(managed_table55)和文件(test.parquet):

关于为什么这种情况不断发生的任何想法或建议?我知道可能有一个小调整,但我似乎无法识别它。

【问题讨论】:

    标签: apache-spark hadoop hive pyspark impala


    【解决方案1】:

    当您将 parquet 文件写入 /hadoop/db1/managed_table55/test.parquet 此位置时,请尝试在同一位置创建表并从 hive 表中读取数据。

    Create Hive Table:

    hive> CREATE external table  if not EXISTS db1.managed_table55 (dummy string)
    stored as parquet
    location '/hadoop/db1/managed_table55/test.parquet';
    

    Pyspark:

    df=spark.read.csv("/user/use_this.csv", header='true')
    df.write.save('/hadoop/db1/managed_table55/test.parquet', format="parquet")
    

    【讨论】:

      猜你喜欢
      • 2019-01-31
      • 2018-01-23
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      • 2018-02-19
      • 2016-03-22
      • 2023-04-05
      相关资源
      最近更新 更多