【发布时间】:2015-06-29 09:18:38
【问题描述】:
我正在使用具有以下版本的 Spark 的 Scala。
斯卡拉 - 2.10.4 火花 - 1.2.0
我在下面提到我的情况。
例如,我有一个带有嵌套元组(具有案例类)的 RDD(Say - JoinOp) -
(123,(null,employeeDetails(Smith,NY,DW)))
(456,(null,employeeDetails(John,IN,CS)))
这个 RDD 是通过一个包含两个文件的 Join 创建的。
现在,我的要求是将此 JSON 格式转换为文本文件格式,不带任何“Null”和任何案例类名称(此处为“employeeDetails”)。
我想要的输出是 =
123,Smith,NY,DW
456,John,IN,CS
我已经尝试过使用字符串插值,但取得了部分成功。
val textOp = JoinOp.map{jm => s"${jm._1},${jm._2._2}"}
如果我打印 textOp 那么它会给我下面的输出。
123,employeeDetails(Smith,NY,DW)
456,employeeDetails(John,IN,CS)
现在,如果我尝试使用字符串插值访问“employeeDetails”案例类中的嵌套元素,它将引发如下错误。
JoinOp.map{jm => s"${jm._1},${jm._2._2._1}"}.foreach(println)
<console> :23: Error : value _1 is not member of jm
在这里我可以理解,使用上述语法,它无法访问“employeeDetails”案例类的嵌套元素。
此问题的解决方案可能是什么。任何帮助或向前指出都会有很大帮助。
非常感谢, 普拉莱
【问题讨论】:
标签: json scala apache-spark file-format string-interpolation