我有一个包含频道信息的数据集。 我现在想要的是聚合f.e.所有通道都以X_开头,如果其中一个状态值“不合适”,新列中的值也应该“不合适”,否则“好”
+-----------------+-----------------+-----------------+-----------------+----------------+
|X_ChannelA_status|Y_ChannelB_status|X_ChannelC_status|X_ChannelD_status|X_channel_status|
+-----------------+-----------------+-----------------+-----------------+----------------+
| not okay| okay| okay| not okay| true|
| not okay| not okay| not okay| not okay| true|
+-----------------+-----------------+-----------------+-----------------+----------------+
我已经通过映射确定了这样的事情,并且不适用于零和“不好”= 1且“好”= 0的情况。 然后我将所有列汇总为一个新列,如果新列中的值是> 0然后很明显,其中一列必须包含“不好”。
val df_grouped = df_filtered.select(list_groupX.map(col).reduce((c1, c2) => c1 + c2) as "sum")
我很想摆脱字符串到int映射的事情,因为我觉得它会减慢计算速度。