【发布时间】:2016-12-21 17:05:33
【问题描述】:
Spark 1.5 和 Scala 2.10.6
我有一个使用“¦¦”作为分隔符的数据文件。我很难通过这个解析来创建一个数据框。可以使用多个分隔符来创建一个数据框吗?该代码适用于单个损坏的管道,但不适用于多个分隔符。
我的代码:
val customSchema_1 = StructType(Array(
StructField("ID", StringType, true),
StructField("FILLER", StringType, true),
StructField("CODE", StringType, true)));
val df_1 = sqlContext.read
.format("com.databricks.spark.csv")
.schema(customSchema_1)
.option("delimiter", "¦¦")
.load("example.txt")
示例文件:
12345¦¦ ¦¦10
【问题讨论】:
-
你试过这个 ("\\|\\|") 吗?请see
-
我建议将其转换为如下
val text = sc.textFile("yourcsv.csv") val words = text.map( lines => lines.split("\\|\\|")然后再次用单管道构造 csv 并继续您的方法 -
@RamGhadiyaram 如果 OP 的数据包含任何双管道可能会出现问题,我会尝试在
spark.csv分隔符选项上使用转义。 -
@RamGhadiyaram 感谢您的建议!我厌倦了 .option("delimiter", "\\\\\\\\\\¦") 并且出现不支持的特殊字符错误。
-
@RamGhadiyaram
¦与|不同
标签: scala apache-spark