我看不到使用Spark& amp;保存的.csv文件。斯卡拉

时间:2018-05-16 05:50:17

标签: scala apache-spark apache-spark-sql

我正在尝试将来自DataFrame的使用SQL和Parquet进行查询的结果保存到.csv文件中。

这是我写我的查询的方式:

This his how I query

这就是我保存数据的方式:

enter image description here

但假定的.csv文件输出无处可见:

enter image description here

2 个答案:

答案 0 :(得分:2)

要添加依赖项,请使用以下命令启动spark shell:

spark-shell --packages com.databricks:spark-csv_2.10:1.5.0

使用以下方式阅读你的宴会文件:

val df = sqlContext.read.parquet("file:///home/mugdha/users.parquet")

应用过滤器,选择操作:

val filteredDF = df.select("name","favorite_color")

要保存filteredDF,您可以使用以下代码:

filteredDF.write.format("com.databricks.spark.csv").save("file:///home/mugdha/testSave")

在testSave文件夹中,您可以查看存储的csv。

答案 1 :(得分:1)

您可以尝试添加 file:///home/hadoop/apr2.csv.gz ,而不是 /home/hadoop.apr2.csv 。您可以参考Github Spark CSV上的数据桶'spark-csv模块上提供的以下代码段

import org.apache.spark.sql.SQLContext

val sqlContext = new SQLContext(sc)
val df = sqlContext.read
    .format("com.databricks.spark.csv")
    .option("header", "true") // Use first line of all files as header
    .option("inferSchema", "true") // Automatically infer data types
    .load("cars.csv")

val selectedData = df.select("year", "model")
selectedData.write
    .format("com.databricks.spark.csv")
    .option("header", "true")
    .option("codec", "org.apache.hadoop.io.compress.GzipCodec")
    .save("newcars.csv.gz")

对于前缀 file:/// ,如果我们想要从本地文件系统而不是HDFS执行任何读取或写入操作,我们通常会添加它。