【问题标题】:Spark Map transformation火花地图转换
【发布时间】:2017-03-09 18:21:37
【问题描述】:

以下代码将从文件中提取数据并使用逗号分隔符分割数据。

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")

当我将输出保存在文本文件中时,不确定为什么我会得到如下数据。
输出:

[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

我是 spark 新手,请帮助我。

【问题讨论】:

    标签: apache-spark transformation


    【解决方案1】:

    我认为在数组数组上使用“saveasTextFile”时 - 这可能会导致写入 Java 对象而不是字符串。

    我认为使用 flatMap 而不是 map 可能会帮助您在输出文件中获取字符串。

    见:https://stackoverflow.com/a/22510434/5088142

    【讨论】:

    • 我在使用 flatmap 时得到了预期的结果,但我很想知道为什么我没有得到预期的 map。现在我得到了答案..谢谢!!
    • @Yaron 如果我可以询问您将 collect 替换为 collect() 的建议,为什么?
    • @eliasah - 我删除了关于 collect vs collect() 的评论
    • @vivman - 如果我能回答您的问题,请接受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多