【问题标题】:Complex RDD types to simple array复杂 RDD 类型到简单数组
【发布时间】:2019-10-30 04:37:00
【问题描述】:

当我写出复杂 RDD 的每一行时,我没有得到值。

如何查看这些值,甚至将每一行转换为数组,因为现在我的类型是 Array[(String, (Array[String], Array[String]))]。

scala> joined.foreach(println)
(8,([Ljava.lang.String;@2fe328b9,[Ljava.lang.String;@7df60197))
(8,([Ljava.lang.String;@7b74541e,[Ljava.lang.String;@7df60197))
(60,([Ljava.lang.String;@7c9f2683,[Ljava.lang.String;@4a8f6f49))
(60,([Ljava.lang.String;@7383536,[Ljava.lang.String;@4a8f6f49))
(60,([Ljava.lang.String;@5eb5556b,[Ljava.lang.String;@4a8f6f49))
(60,([Ljava.lang.String;@5b9bdb00,[Ljava.lang.String;@4a8f6f49))
(60,([Ljava.lang.String;@6adf021d,[Ljava.lang.String;@4a8f6f49))
(60,([Ljava.lang.String;@2c080bf5,[Ljava.lang.String;@4a8f6f49))
(60,([Ljava.lang.String;@58620d12,[Ljava.lang.String;@4a8f6f49))
(60,([Ljava.lang.String;@5da48ec5,[Ljava.lang.String;@4a8f6f49))

【问题讨论】:

    标签: java sql arrays apache-spark join


    【解决方案1】:

    考虑到“已加入”是您的 RDD:

    joined.map(record => (record._1, record._2._1.mkString(", "), record._2._2.mkString(", "))).foreach(println)
    

    我想提出一个问题。当您遍历 RDD (foreach) 并调用 println api 时,您实际上是在 Executor(集群上的远程工作者)上执行它。当然,除非您在 Local[] 模式下运行,否则您不会在主(驱动程序)控制台中看到这些打印。

    【讨论】:

    • 哦,好吧。但是我在 mkString 上遇到错误。那是什么? scala scala> joined.map(record => (record._1, record._2.mkString(", "), record._3.mkString(", "))).foreach(println) <console>:27: error: value mkString is not a member of (Array[String], Array[String]) joined.map(record => (record._1, record._2.mkString(", "), record._3.mkString(", "))).foreach(println) ^
    • 已编辑,请查看
    猜你喜欢
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多