このコマンドは HiveQL で動作します:
insert overwrite directory '/data/home.csv' select * from testtable;
しかし、Spark SQL ではスタック トレースでエラーが発生しますorg.apache.spark.sql.hive.HiveQl
。
java.lang.RuntimeException: Unsupported language features in query:
insert overwrite directory '/data/home.csv' select * from testtable
Spark SQL で CSV へのエクスポート機能を書く方法を教えてください。
ベストアンサー1
以下のステートメントを使用して、データフレームの内容をCSV形式で書き込むことができます。df.write.csv("/data/home/csv")
データフレーム全体を1つのCSVファイルに書き込む必要がある場合は、df.coalesce(1).write.csv("/data/home/sample.csv")
のためにスパーク1.x、使用できますスパークCSV結果を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.write.format("com.databricks.spark.csv").save("/data/home/csv")
内容を1つのファイルに書き込む
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")