【发布时间】:2021-07-23 12:51:09
【问题描述】:
我有以下数据框
REC_DATA = spark.createDataFrame(
[
('exercise', 'fiber', 'rice', 'male'),
('exercise', 'rice', 'fiber', 'female'),
('exercise', 'water', 'fiber', 'male'),
('exercise', 'rice', 'exercise', 'female'),
],
StructType(
[
StructField("1_rec", StringType(), False),
StructField("2_rec", StringType(), False),
StructField("3_rec", StringType(), False),
StructField("sex", StringType(), True),
]
)
)
| 1_rec | 2_rec | 3_rec | sex |
|---|---|---|---|
| exercise | fiber | rice | male |
| exercise | rice | fiber | female |
| exercise | water | fiber | male |
| water | rice | exercise | female |
我正在尝试将这些行分组为一个新列,将列 1_rec、2_rec、3_rec 转换为行,并添加一个带有数量的新列,输出应该是这样的:
| Position | name | count |
|---|---|---|
| 1_rec | exercise | 3 |
| 1_rec | water | 1 |
| 2_rec | water | 1 |
| 2_rec | rice | 2 |
| 2_rec | fiber | 1 |
| 3_rec | rice | 1 |
| 3_rec | fiber | 2 |
| 3_rec | exercise | 1 |
我曾尝试做一个交叉表,但它不能正常工作。
【问题讨论】:
标签: python pyspark apache-spark-sql