2017-03-12 51 views
0

我们的csv文件格式为^ A作为我们的列分隔符,^ B作为我们的行分隔符/记录分隔符。 所以我现在用的是databricks火花CSV库来创建一个数据帧方式如下:Databricks Spark CSV标题分隔符

val dataFrame = cassSqlContext.read.format("com.databricks.spark.csv") 
     .option("header", "true").option("inferSchema", "true") 
     .option("delimiter", "\u0001").load(file) 

看着火花CSV文件,关于标题的选择,它这样说: 当设置为true的第一个文件行将用于命名列,不会包含在数据中。所有类型都将被假定为字符串。默认值为false。

但是我们并没有使用\ n,而是我们正在使用^ B。那么,有没有办法告诉大家,我们的头有一个分隔符,以及而不是默认的\ n中的火花CSV库

+0

恐怕在使用Spark解析CSV时无法修改记录分隔符。在侧面节点上,csv解析现在是spark的一部分(如果我正确记得,从2.0开始)。你可以做'spark.read.csv(“/ tmp/my.csv”)' – BenFradet

+0

是的,但目前我们正在使用spark 1.6,但我想出了一个解决方案 – Ahmed

回答

1

我能加入这个下面这行我sparkContext让上面的代码工作:

sparkContext.hadoopConfiguration.set(“textinputformat.record.delimiter”,“\ u0002”)