将文本文件映射到键/值对,以便在pyspark中将它们分组

时间:2018-10-29 19:19:44

标签: pyspark pyspark-sql

我想在pyspark中从一个文本文件创建一个spark数据框,该文本文件具有不同的行数和列数,并将其映射到键/值对,键是文本文件第一列的前4个字符。我要这样做是为了删除多余的行,以便以后可以按键值对它们进行分组。我知道如何在熊猫上做到这一点,但仍然对从pyspark到哪里开始这样做感到困惑。

我的输入是一个具有以下内容的文本文件:

  1234567,micheal,male,usa
  891011,sara,femal,germany

我希望能够按第一列的前六个字符对每一行进行分组

1 个答案:

答案 0 :(得分:1)

创建一个仅包含第一列前六个字符的新列,然后按此分组:

from pyspark.sql.functions import col
df2 = df.withColumn("key", col("first_col")[:6])
df2.groupBy("key").agg(...)