我想在pyspark中从一个文本文件创建一个spark数据框,该文本文件具有不同的行数和列数,并将其映射到键/值对,键是文本文件第一列的前4个字符。我要这样做是为了删除多余的行,以便以后可以按键值对它们进行分组。我知道如何在熊猫上做到这一点,但仍然对从pyspark到哪里开始这样做感到困惑。
我的输入是一个具有以下内容的文本文件:
1234567,micheal,male,usa
891011,sara,femal,germany
我希望能够按第一列的前六个字符对每一行进行分组
答案 0 :(得分:1)
创建一个仅包含第一列前六个字符的新列,然后按此分组:
from pyspark.sql.functions import col
df2 = df.withColumn("key", col("first_col")[:6])
df2.groupBy("key").agg(...)