Подсчитать итоговые значения в каждой строке фрейма данных, используя pyspark - PullRequest
0 голосов
/ 12 октября 2019

У меня есть столбец во фрейме данных, в каждой строке которого указан список дат, разделенных запятыми. Я хочу создать новый столбец с именем date_count, который содержит количество дат в строке. Я пытался использовать панд, но я хочу реализовать это в pyspark, и я также новичок в искре.

df['date_count'] = 0
    for index in df.index.tolist():
        for i in (df.loc[[index],'date']):
            date_list = i.split(",")
            df.loc[[index],'date_count'] = len(date_list)

1 Ответ

1 голос
/ 12 октября 2019

Ниже мой код pyspark для этого:

values = [
  (1,"2019-10-11, 2019-10-12, 2019-10-13, 2019-10-14, 2019-10-15"),
  (2,"2019-11-11, 2019-11-12, 2019-11-17, 2019-11-18")
  ]

rdd = sc.parallelize(values)
schema = StructType([
    StructField("id", IntegerType(), True),StructField("dates", StringType(), True)
])

data = spark.createDataFrame(rdd, schema)

data.createOrReplaceTempView("data")
spark.sql("""select id, 
                    dates, 
                    size(split(dates, ",")) as date_count 
              from data""").show(20,False)

Результат:

+---+----------------------------------------------------------+----------+
|id |dates                                                     |date_count|
+---+----------------------------------------------------------+----------+
|1  |2019-10-11, 2019-10-12, 2019-10-13, 2019-10-14, 2019-10-15|5         |
|2  |2019-11-11, 2019-11-12, 2019-11-17, 2019-11-18            |4         |
+---+----------------------------------------------------------+----------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...