下面的代码将从文件中提取数据,并用逗号分隔符拆分数据。
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
我是新手,请帮我。
1条答案
按热度按时间jjjwad0x1#
我认为在数组上使用“saveastextfile”时,可能会导致编写java对象而不是字符串。
我认为使用flatmap而不是map可以帮助您在输出文件中获取字符串。
请参见:https://stackoverflow.com/a/22510434/5088142