提问人:chingu 提问时间:7/11/2023 更新时间:7/11/2023 访问量:77
根据该列是否存在于另一个列的值中动态选择该列 (Java Spark SQL)
Dynamically selecting column based on if that column exists in another column's value (Java Spark SQL)
问:
我正在使用 Spark SQL Java(不是 scala 或 python)。这是我的数据集的简化示例(它的列比这多得多):
编号 | 引用 | E_id | F_id | G_id |
---|---|---|---|---|
0 | [E_id] | 0000 | ||
1 | [E_id,F_id,G_id] | 0010 | 1000 | 1111 |
有一个名为的列,其中包含此行数据所具有的列名数组。因此,第一行只有一列,不会有列,或者第二行有所有 3 列。对于每一行,我需要选择相关列(“喜欢”和“所有数据行都有”),然后选择包含在 中。References
Ex_1
Ex_2
Ex_3
References
ID
References
目前,这是我的代码:
final Dataset<Row> partitionedDf = df.select(col("id"), col("references));
我无法将任何列硬编码到我的选择中,因为 References 中可能的列是动态的。我需要找到一种方法来获取每行的引用,然后选择引用中的列,以便它们都包含在我的数据集中。Ex_1, Ex_2...etc
需要注意的一点是,引用中的列都遵循一种模式(它们都以“_id”结尾),所以我不确定是否也可以在这里使用正则表达式匹配,而不是依赖于引用数组中的内容。
答: 暂无答案
评论
Java
If-statements
streams