将parquet文件加载到存储为parquet fail(值为null)的配置单元表中

vm0i2vca  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(462)

我只是想在配置单元中创建一个存储为Parquet文件的表,然后将保存数据的csv文件转换为Parquet文件,然后将其加载到hdfs目录以插入值。下面是我正在执行的序列,但没有效果:
首先,我在配置单元中创建了一个表:

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\u this.csv文件中的原始值:

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


你有什么想法或建议来解释为什么会这样吗?我知道可能有一个小的调整,但我似乎无法确定它。

5cg8jx4n

5cg8jx4n1#

当你在写Parquet文件的时候 /hadoop/db1/managed_table55/test.parquet 此位置请尝试在同一位置创建表并从配置单元表中读取数据。 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")

相关问题