dataframe.write.parquet-parquet文件不能被hive或impala读取

guicsvcw  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(428)

我使用以下命令将带有pyspark的Dataframe写入hdfs:

df.repartition(col("year"))\
.write.option("maxRecordsPerFile", 1000000)\
.parquet('/path/tablename', mode='overwrite', partitionBy=["year"], compression='snappy')

在查看hdfs时,我可以看到文件正确地放置在那里。不管怎样,当我试图用Hive或 Impala 来阅读表格时,找不到表格。
这里出了什么问题,我漏了什么吗?
有趣的是, df.write.format('parquet').saveAsTable("tablename") 工作正常。

bvjxkvbb

bvjxkvbb1#

这是spark的预期行为: df...etc.parquet("") 将数据写入hdfs位置,并且不会在配置单元中创建任何表。
但是 df..saveAsTable("") 在配置单元中创建表并向其中写入数据。
如果表已经存在,则此函数的行为取决于mode函数指定的保存模式(默认为引发异常)。当mode为overwrite时,dataframe的架构不需要与现有表的架构相同。
这就是你的原因 not able to find table in hive 演出后 df...parquet("")

相关问题