下面的代码将从文件中提取数据并使用逗号分隔符分割数据。
val a=sc.textFile("/sparkinput")
val b=a.map(x=>x.split(","))
b.collect
输出:
Array(Array(1, Brandon Buckner, avil, female, 525), Array(2, Veda Hopkins, avil, male, 633), Array(3, Zia Underwood, paracetamol, male, 980), Array(4, Austin Mayer, paracetamol, female, 338), Array(5, Mara Higgins, avil, female, 153), Array(6, Sybill Crosby, avil, male, 193), Array(7, Tyler Rosales, paracetamol, male, 778), Array(8, Ivan Hale, avil, female, 454), Array(9, Alika Gilmore, paracetamol, female, 833), Array(10, Len Burgess, metacin, male, 325))
b.saveasTextFile("/sparkoutput")
当我在textfile中保存输出时,不确定为什么我得到如下数据。
输出:
[Ljava.lang.String;@45968fc2
[Ljava.lang.String;@6b3012a2
[Ljava.lang.String;@211780a8
[Ljava.lang.String;@dffa691
[Ljava.lang.String;@b1080c5
[Ljava.lang.String;@68760b2f
[Ljava.lang.String;@1dd8703d
我是新来的,请帮助我。
答案 0 :(得分:1)
我认为在数组数组上使用“saveasTextFile”时,这可能导致编写Java对象而不是字符串。
我认为使用flatMap而不是map可能会帮助你在输出文件中获取字符串。