【发布时间】:2015-08-10 22:04:15
【问题描述】:
我需要从 Cassandra 数据框中的地图中提取值作为列 我有一个像
这样的数据框 val cc = new CassandraSQLContext(sc)
val rdd = cc.sql("select * from sams.events where appname = 'test'");
rdd 中的列是“appname”作为字符串,“client”作为 Map 我在 cassandra 中的客户端是映射和键的映射,例如“平台”、“设备”值作为“android”或“ios”
我只需要选择平台键并将其作为一列
这就是我所做的 rdd.registerTempTable("newdf") var df2 = cc.sql("select appname, client.platform from newdf");
这会成功,但平台值始终为空。 我的 newdf 有一个值图。
[更新] 如果 cassandra 表映射列的键小于 5,则上述方法有效,但如果我的键数大于或等于 5,则它不起作用并给我全部为空。 这真的很奇怪。请帮我解决这个问题。
【问题讨论】: