将 pyspark 中的数据框保存为 csv 中的 hivetable

Posted

技术标签:

【中文标题】将 pyspark 中的数据框保存为 csv 中的 hivetable【英文标题】:Save a dataframe in pyspark as hivetable in csv 【发布时间】:2017-03-09 02:02:48 【问题描述】:

我在pyspark 中有一个数据框,比如df

我想将数据框保存为 csv 中 hive 中的表格。我已经完成了如下操作

df.write.saveAsTable("testing.test")

但是 hive 表数据显示该表是 parquet 格式。我想另存为 CSV 表。我们怎样才能做到这一点。

仅供参考,我使用的是 spark 1.6

【问题讨论】:

【参考方案1】:

您可以指定格式

write.format('csv').mode(mode).options(options).saveAsTable(tableName)

即df.write.format('csv').saveAsTable('testing.test')。

https://spark.apache.org/docs/preview/api/python/_modules/pyspark/sql/readwriter.html

【讨论】:

我需要导入什么吗 我收到此错误 py4j.protocol.Py4JJavaError:调用 o65.saveAsTable 时发生错误。 :java.lang.ClassNotFoundException:找不到数据源:csv。请在spark-packages.org 找到包 您正在使用哪个版本的 spark ..code 将适用于 Spark 1.4+ 我使用的是 Spark 1.6。格式 csv 选项是否仅支持 Scala【参考方案2】:

如果您使用的是 spark 1.6,那么您需要相同的 databricks 包。

这里是示例代码:-

df.coalesce(1).write.format("com.databricks.spark.csv").option("header", "true").save("testing.csv")

【讨论】:

以上是关于将 pyspark 中的数据框保存为 csv 中的 hivetable的主要内容,如果未能解决你的问题,请参考以下文章

如何将 CSV 值与 pyspark 数据框中的单元格中的值分别分隔为新列及其值

使用 pyspark 将 Spark 数据框中的列转换为数组 [重复]

我可以将 pyspark 数据框保存为哪些文件格式?

将数据框中的日期时间保存为 csv 时保持时区

删除 Spark 数据框中的空格时出错 - PySpark

如何使用pyspark将数据框保存在“.txt”文件中