Сложные типы СДР в простой массив - PullRequest
0 голосов
/ 16 июня 2019

Когда я записываю каждую строку моего сложного 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))

1 Ответ

0 голосов
/ 16 июня 2019

Учитывая, что "присоединился" - это ваш СДР:

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

Я хотел бы поднять один вопрос. Когда вы перебираете RDD (foreach) и вызываете API println, вы фактически выполняете его в Executor (удаленный работник в кластере). Вы не увидите эти отпечатки в главной консоли (драйвере), если, конечно, вы не работаете в режиме Local [].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...