gpt4 book ai didi

python - DataFrame.write.parquet - HIVE 或 Impala 无法读取 Parquet 文件

转载 作者:行者123 更新时间:2023-12-01 07:43:17 25 4
gpt4 key购买 nike

我使用以下命令将带有 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")工作正常。

最佳答案

这是 Spark 的预期行为:

  • df...etc.parquet("") 将数据写入 HDFS位置,并且不会在 Hive 中创建任何表。

  • 但是df..saveAsTable("")创建table hive 中并向其中写入数据。

In the case the table already exists, behavior of this function depends on the save mode, specified by the mode function (default to throwing an exception). When mode is Overwrite, the schema of the DataFrame does not need to be the same as that of the existing table.

这就是为什么执行 df...parquet("")无法在配置单元中找到表的原因>

关于python - DataFrame.write.parquet - HIVE 或 Impala 无法读取 Parquet 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56581105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com