【问题标题】:Count total values in each row of dataframe using pyspark使用pyspark计算每行数据帧中的总值
【发布时间】:2019-10-12 16:39:40
【问题描述】:

我在数据框中有一列,每一行都有一个用逗号分隔的日期列表。我想创建一个名为 date_count 的新列,其中包含每行的日期数。我尝试使用 pandas,但我想在 pyspark 中实现它,而且我也是 spark 新手。

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)

【问题讨论】:

    标签: python apache-spark pyspark


    【解决方案1】:

    下面是我的 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         |
    +---+----------------------------------------------------------+----------+
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-29
      • 2016-02-27
      • 2022-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      相关资源
      最近更新 更多