多字符注释字符串Spark CSV阅读器

时间:2017-08-28 20:57:39

标签: csv apache-spark dataframe apache-spark-sql

我有一个制表符分隔文件,其中的注释由const shell = require('electron').shell; // assuming $ is jQuery $(document).on('click', 'a[href^="http"]', function(event) { event.preventDefault(); var iframe = document.getElementById('myframe') console.log(iframe, event.target) // what are these? if(iframe) { shell.openExternal(iframe.href); } }); 表示。我想将文件读入DataFrame,并希望使用类似的东西:

##

当我尝试这个时,我得到一个运行时异常:val targetDF = sparkSession.read.format("csv") .option("header", "true") .option("inferSchema", "true") .option("delimiter", "\t") .option("comment", "##") .load(pathToFile) 。处理这个的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

然后只使用一个'#',以'#'开头的每一行都将被视为注释。这就是API所说的:

  

comment(默认空字符串):设置用于跳过以此字符开头的行的单个字符。默认情况下,它被禁用。

但请确保文件中没有此字符的有效行。

val targetDF = sparkSession.read.format("csv")
 .option("header", "true")
 .option("inferSchema", "true")
 .option("delimiter", "\t")
 .option("comment", "#")
 .load(pathToFile)

编辑:因为您的记录可以包含单个“#”,您必须省略comment选项,然后只需手动过滤您的Dataframe,或者在解析之前删除文件中以“#”开头的任何行它