如何通过列名的前缀对火花数据框进行子集化?

Posted

技术标签:

【中文标题】如何通过列名的前缀对火花数据框进行子集化?【英文标题】:How to subset spark dataframe by prefixes of the column names? 【发布时间】:2021-01-06 14:11:21 【问题描述】:

我的 spark 数据框 df 的列名是:A_x1、A_x2、B_x1、B_x2、C_x1、C_x2。

如何使用前缀从 df 创建 3 个新的 spark 数据帧?输出应如下所示:

名为 A_ 的数据框包含列 A_x1、A_x2、 名为 B_ 的数据框包含 B_x1、B_x2 列, 名为 C_ 的数据框包含 C_x1、C_x2 列。

谢谢!

【问题讨论】:

【参考方案1】:

您可以使用colRegex 过滤列:

A_ = df.select(df.colRegex('`A_.*`'))
B_ = df.select(df.colRegex('`B_.*`'))
C_ = df.select(df.colRegex('`C_.*`'))

【讨论】:

以上是关于如何通过列名的前缀对火花数据框进行子集化?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用左连接的情况下根据“OR”条件对数据框进行子集化? [复制]

如何对 SparkR 数据框进行子集化

如何根据应用于大量列的“不等于”标准对数据框进行子集化?

如何使用“OR”组合多个条件以对数据框进行子集化?

如何使用每组的行数作为条件对数据框进行子集化

如何使用包含点/句点的列名创建火花数据框?