如何将数据从 Spark SQL 导出到 CSV [英] How to export data from Spark SQL to CSV

查看:210
本文介绍了如何将数据从 Spark SQL 导出到 CSV的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此命令适用于 HiveQL:

This command works with HiveQL:

insert overwrite directory '/data/home.csv' select * from testtable;

但是使用 Spark SQL,我收到一个 org.apache.spark.sql.hive.HiveQl 堆栈跟踪错误:

But with Spark SQL I'm getting an error with an org.apache.spark.sql.hive.HiveQl stack trace:

java.lang.RuntimeException: Unsupported language features in query:
    insert overwrite directory '/data/home.csv' select * from testtable

请指导我在 Spark SQL 中编写导出到 CSV 功能.

Please guide me to write export to CSV feature in Spark SQL.

推荐答案

您可以使用下面的语句将 dataframe 的内容写入 CSV 格式df.write.csv("/data/home/csv")

You can use below statement to write the contents of dataframe in CSV format df.write.csv("/data/home/csv")

如果您需要将整个数据帧写入单个 CSV 文件,请使用df.coalesce(1).write.csv("/data/home/sample.csv")

If you need to write the whole dataframe into a single CSV file, then use df.coalesce(1).write.csv("/data/home/sample.csv")

对于 spark 1.x, 你可以使用 spark-csv 将结果写入 CSV 文件

For spark 1.x, you can use spark-csv to write the results into CSV files

下面的 scala 片段会有所帮助

Below scala snippet would help

import org.apache.spark.sql.hive.HiveContext
// sc - existing spark context
val sqlContext = new HiveContext(sc)
val df = sqlContext.sql("SELECT * FROM testtable")
df.write.format("com.databricks.spark.csv").save("/data/home/csv")

将内容写入单个文件

import org.apache.spark.sql.hive.HiveContext
// sc - existing spark context
val sqlContext = new HiveContext(sc)
val df = sqlContext.sql("SELECT * FROM testtable")
df.coalesce(1).write.format("com.databricks.spark.csv").save("/data/home/sample.csv")

这篇关于如何将数据从 Spark SQL 导出到 CSV的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆