我有一个镶木桌子,其中一列是
,array
>
可以使用LATERAL VIEW语法在Hive中对此表运行查询。
如何将此表读入RDD,更重要的是如何在Spark中过滤,映射等此嵌套集合?
在Spark文档中找不到对此的任何引用。预先感谢您提供任何信息!
ps。我觉得在表格上提供一些数据可能会有所帮助。主表中的列数约为600。行数〜200m。嵌套集合中的“列”数约为10。嵌套集合中的平均记录数约为35。
对于嵌套集合,这没有什么魔术。 Spark将以相同的方式处理RDD[(String, String)]
和RDD[(String, Seq[String])]
。
我将提供基于Python的答案,因为这就是我正在使用的答案。我认为Scala具有类似的功能。
另一种方法是使用像这样的模式匹配:
以上答案都是很好的答案,可以从不同角度解决这个问题; Spark SQL也是访问嵌套数据的非常有用的方法。