Ran*_*ana 7 scala apache-spark
我正在尝试使用Apache Spark从管道("|")分隔文件生成格式化的CSV文件.输入文件包含:
苹果|球|猫
布莱克顿| Bela vista | 格里纳克
X | Y | Z
我正在尝试:
val name= sc.textFile(input.txt")
val split=name.map(line=>line.split("|")).map( x => (x(0),x(2)) )
split.foreach(println)
Run Code Online (Sandbox Code Playgroud)
输出:
(X,Y)
(A,P)
(B,A)
我要求的输出是:
(苹果,猫)
(布莱克敦,格林纳克)
(X,Z)
函数的String参数split是一个正则表达式,所以如果你想使用管道,它必须被转义:
line.split("\\|")
Run Code Online (Sandbox Code Playgroud)
否则它被解释为两个空模式之间的交替.
您还可以使用接受Character文字的变体:
line.split('|')
Run Code Online (Sandbox Code Playgroud)
line.split(Array('|'))
Run Code Online (Sandbox Code Playgroud)
验证输入也更好:
names.map(_.split("\\|")).collect {
case Array(x, _, y) => (x, y)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3516 次 |
| 最近记录: |