这是我的mongodb集合架构的一部分:
|-- variables: struct (nullable = true)
| |-- actives: struct (nullable = true)
| | |-- data: struct (nullable = true)
| | | |-- 0: struct (nullable = true)
| | | | |--active: integer (nullable = true)
| | | | |-- inactive: integer (nullable = true)
我已经获取了该集合并将其存储在Spark数据框中,现在我正在尝试提取变量列中最里面的值。
df_temp = df1.select(df1.variables.actives.data)
这非常好用,我能够获得数据结构的内部结构。
+----------------------+
|variables.actives.data|
+----------------------+
| [[1,32,0.516165...|
| [[1,30,1.173139...|
| [[4,18,0.160088...|
然而,一旦我尝试进一步:
df_temp = df1.select(df1.variables.actives.data.0.active)
我收到无效语法错误。
df_temp = df1.select(df1.variables.actives.data.0.active)
^
SyntaxError:语法无效
问题在于我的内部字段的密钥名称是一个数字,我找不到内部字段键名称为数字的示例。
实现从数据框中检索最内层值(活动和非活动)的目标的最佳方法是什么?
答案 0 :(得分:1)
您可以尝试:
df_temp = df1.select(df1.variables.actives.data["0"].active)