Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 无法附加";引述;数据帧写入_Apache Spark_Spark Dataframe - Fatal编程技术网

Apache spark 无法附加";引述;数据帧写入

Apache spark 无法附加";引述;数据帧写入,apache-spark,spark-dataframe,Apache Spark,Spark Dataframe,我正在尝试在spark中将数据帧保存为.csv。要求所有字段都以“引号”为界。目前,该文件没有用“引号”括起来 我正在使用Spark 2.1.0 代码: DataOutputResult.write.format("com.databricks.spark.csv"). option("header", true). option("inferSchema", false). option("quoteMode", "ALL"). mode("overwrite"). save(Dataoutp

我正在尝试在spark中将数据帧保存为.csv。要求所有字段都以“引号”为界。目前,该文件没有用“引号”括起来

我正在使用Spark 2.1.0

代码:

DataOutputResult.write.format("com.databricks.spark.csv").
option("header", true).
option("inferSchema", false).
option("quoteMode", "ALL").
mode("overwrite").
save(Dataoutputfolder)
Name, Id,Age,Gender

XXX,1,23,Male
输出格式(实际):

DataOutputResult.write.format("com.databricks.spark.csv").
option("header", true).
option("inferSchema", false).
option("quoteMode", "ALL").
mode("overwrite").
save(Dataoutputfolder)
Name, Id,Age,Gender

XXX,1,23,Male
输出格式(必填):

"Name", "Id" ," Age" ,"Gender"

"XXX","1","23","Male"
df1.write.format("csv")
.option("header", true)
.option("quoteAll","true")
.save(Dataoutputfolder)
到目前为止我尝试过的选项:

DataOutputResult.write.format("com.databricks.spark.csv").
option("header", true).
option("inferSchema", false).
option("quoteMode", "ALL").
mode("overwrite").
save(Dataoutputfolder)
Name, Id,Age,Gender

XXX,1,23,Male
QuoteMode,在选项中作为文件引用,但没有成功。

(“Quote”,“all”)
,将
QuoteMode
替换为
Quote

或者直接在
df
列上玩
concat
concat\u ws
并保存而不使用
quote-模式

import org.apache.spark.sql.functions.{concat, lit}

val newDF = df.select(concat($"Name", lit("""), $"Age"))
或者创建自己的
udf
函数来添加所需的行为,请在
(“quote”,“all”)
中找到更多示例,将
quoteMode
替换为
quote

或者直接在
df
列上玩
concat
concat\u ws
并保存而不使用
quote-模式

import org.apache.spark.sql.functions.{concat, lit}

val newDF = df.select(concat($"Name", lit("""), $"Age"))

或者创建自己的
udf
函数来添加所需的行为,请在中找到更多的示例,无法将其作为注释添加到上述答案中,因此作为答案发布。 在Spark 2.3.1中,使用quoteAll

"Name", "Id" ," Age" ,"Gender"

"XXX","1","23","Male"
df1.write.format("csv")
.option("header", true)
.option("quoteAll","true")
.save(Dataoutputfolder)

此外,要添加到@Karol Sudol(伟大答案btw)的注释中,
.option(“quote”,“\u0000”)
仅在使用Pyspark和Python 3时有效,Pyspark的默认编码为“utf-8”。一些人报告说该选项不起作用,因为他们必须将Pyspark与Python2一起使用,Python2的默认编码为“ascii”。因此,错误
“java.lang.RuntimeException:引号不能超过一个字符”

无法作为注释添加到上述答案中,因此作为答案发布。 在Spark 2.3.1中,使用quoteAll

"Name", "Id" ," Age" ,"Gender"

"XXX","1","23","Male"
df1.write.format("csv")
.option("header", true)
.option("quoteAll","true")
.save(Dataoutputfolder)

此外,要添加到@Karol Sudol(伟大答案btw)的注释中,
.option(“quote”,“\u0000”)
仅在使用Pyspark和Python 3时有效,Pyspark的默认编码为“utf-8”。一些人报告说该选项不起作用,因为他们必须将Pyspark与Python2一起使用,Python2的默认编码为“ascii”。因此,错误
“java.lang.RuntimeException:quote不能超过一个字符”

java.lang.RuntimeException:quote不能超过一个字符try
。选项(“quote”,“\u0000”)
可能与
unicode null有关,我仍然看到这个问题。添加了选项(“quote”,“\u0000”),我在\u0000上遇到一个错误,说“java.lang.RuntimeException:quote不能超过一个字符”,您知道这是什么意思吗?.option(“header”、“true”).option(“quoteAll”、“true”).option(“quote”、“u0000”).mode(“overwrite”).save(“data/file.csv”).java.lang.RuntimeException:quote不能超过一个字符try
。option(“quote”、“u0000”)
可能与
unicode null
有关,我仍然看到这个问题。添加了选项(“quote”,“\u0000”),我在\u0000上遇到一个错误,说“java.lang.RuntimeException:quote不能超过一个字符”,您知道这是什么意思吗?.option(“header”,“true”).option(“quoteAll”,“true”).option(“quote”,“u0000”).mode(“overwrite”).save(“data/file.csv”)“已解析:option(“quoteAll”,true)。已解析:option(“quoteAll”,true)。