使用" com.databricks.spark.csv"编写数据帧时格式,转义选项不起作用它将默认转义字符作为引号(")。
通过关注this,我也尝试保留引用的字段,其中包含引号(")但仍然无效。
以下是我的输入数据文件(test.txt):
first , line
second " line
"third line"
fourth \n line
fifth \r line
sixth \ line
"seventh " line"
这是我的代码:
val rdd = sc.textFile("D:\\Users\\vipareek\\AdHoc\\test.txt")
val schema = new StructType()
.add("col1", StringType)
val schemaRDD = rdd.map(x => Row(x.toString))
val df = sqlContext.createDataFrame(schemaRDD, schema)
df.coalesce(1).write.format("com.databricks.spark.csv")
.option("header", "true")
.option("quoteMode", "NON_NUMERIC")
.option("escape", "\\")
.save("D:\\Users\\vipareek\\Projects\\FCA\\Datastax\\AdHoc\\out")
最后,这是输出:
"col1"
"first , line"
"second "" line"
"""third line"""
"fourth \n line"
"fifth \r line"
"sixth \ line"
"""seventh "" line"""
根据" com.databricks.spark.csv的readme"在这个输出中,转义字符应该是\(反斜杠)而不是" (引用)(对于最后一行,即"第七"行")。
Spark版本 1.6.1
有人可以提出建议,我在这里遗漏了什么或使用不正确吗?