【问题标题】:Pyspark : TypeError: _api() takes 1 positional argumentPyspark:TypeError:_api() 需要 1 个位置参数
【发布时间】:2022-12-03 13:36:38
【问题描述】:

我将此代码用于数据框上的枢轴:

df2 = df.groupBy("id").pivot("status").count("status")
df = df.join(df2, on="id", how='left')

但我得到这个错误:TypeError: _api() 采用 1 个位置参数,但给出了 2 个

拜托,我们能帮帮我吗??

【问题讨论】:

    标签: dataframe pyspark


    【解决方案1】:

    当您要计算聚合值时,您可以导入 spark sql 函数:

    from pyspark.sql import functions as spark_sql_functions
    

    例如,让我们有下一个数据框:

    df.show()
    
    +--------------------+-----------------+------------------+
    |             country|             name|        subcountry|
    +--------------------+-----------------+------------------+
    |             Andorra|     les Escaldes|Escaldes-Engordany|
    |             Andorra| Andorra la Vella|  Andorra la Vella|
    |United Arab Emirates|   Umm al Qaywayn|    Umm al Qaywayn|
    |United Arab Emirates|   Ras al-Khaimah|   Raʼs al Khaymah|
    |United Arab Emirates|     Khawr Fakkān|      Ash Shāriqah|
    |United Arab Emirates|            Dubai|             Dubai|
    ...
    ...
    

    将 agg 函数与 spark sql 函数一起使用:

    df_cities = df.groupBy('country', 'subcountry').agg(
      spark_sql_functions.count('name').alias('cities')).groupBy('country').agg(
        spark_sql_functions.count('subcountry').alias('subcountry'),
        spark_sql_functions.sum('cities').alias('cnt')).sort(spark_sql_functions.desc('cnt'))
    df_cities.show()
    =>
    +--------------+----------+----+
    |       country|subcountry| cnt|
    +--------------+----------+----+
    | United States|        51|2699|
    |         India|        35|2443|
    |        Brazil|        27|1200|
    |        Russia|        82|1093|
    |       Germany|        16|1055|
    |         China|        31| 799|
    |         Japan|        47| 736|
    |        France|        13| 633|
    |         Italy|        20| 571|
    ...
    

    我希望这个例子有用。

    【讨论】:

      猜你喜欢
      • 2021-12-18
      • 2021-04-26
      • 2017-01-26
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      相关资源
      最近更新 更多