CSV解析嵌套引号
我尝试使用ApacheSparks CSV阅读器解析一个相当复杂的CSV,该阅读器内部依赖于ApacheCommons库() 我尝试了不同的组合CSV解析嵌套引号,csv,apache-spark,apache-commons,Csv,Apache Spark,Apache Commons,我尝试使用ApacheSparks CSV阅读器解析一个相当复杂的CSV,该阅读器内部依赖于ApacheCommons库() 我尝试了不同的组合 quoteMode和escape但无法使其工作,例如防止异常。您是否有任何提示,哪些参数将支持这种嵌套结构 ERROR CsvRelation$: Exception while parsing line: "Gabriella's Song" From The Motion Picture "The Mission"; java.io.IOExc
quoteMode
和escape
但无法使其工作,例如防止异常。您是否有任何提示,哪些参数将支持这种嵌套结构
ERROR CsvRelation$: Exception while parsing line: "Gabriella's Song" From The Motion Picture "The Mission";
java.io.IOException: (line 1) invalid char between encapsulated token and delimiter
我知道可以使用sed
对数据进行预处理。但是,如果将其集成到Spark中(例如,如果不需要进一步的预处理),则效果会更好。我没有找到指定正则表达式的可能性
CSV文件如下所示:
"Gabriella's Song" From The Motion Picture "The Mission";
这与
还有一些特殊领域,比如
&
Or "Eccoli; attenti ben (Don Pasquale)"
造成这些问题。我们将为Apache Camel编写我们自己的CSV预处理器。试试这个,它对我来说非常有效-
HDFS file -
spark.read.option("WholeFile", true).option("delimiter", ",").csv(s"hdfs://{my-hdfs-file-path}")
Non-HDFS file -
spark.read.option("WholeFile", true).option("delimiter", ",").csv(my-hdfs-file-path)
上述方法适用于任何带分隔符的文件,只需更改分隔符值即可
您也可以使用正则表达式,但这对于大型文件来说非常有效
希望这对您有所帮助。您是否厌倦了使用其他解析引擎?到目前为止,还不是因为我不知道哪个引擎支持它。你知道这样一个引擎吗?你在这里没有太多选择:)
spark csv
只支持univocity
作为替代。但是spark csv
支持parserLib
-难道不能在那里集成其他csv库吗?对于这个输入设置,请将选项引用到“
应该足够了。问题是,一般来说,它是否适用于您。