我使用 spark 2.3.2,我想聚合 2 列,但.agg()
函数告诉我列名有问题,但我没有看到。
一些带有实际列名的伪代码:
df = spark.read.parquet('./my_files')
[... doing some stuff with the data everything works fine ...]
df2 = df.groupBy(AD_ID).agg({'pagerank':'sum','pagerankRAW':'sum'})
当我这样做时,火花会抛出异常:AnalysisException: 'Attribute name "sum(pagerankRAW)" contains invalid character(s) among " ,;{}()\\n\\t=". Please use alias to rename it.;'
但我没有看到无效字符......我的列名中只有字母。当我'pagerankRAW':'sum'
从中删除时,dict
我得到了同样的错误,但这次是sum(pagerank)
那我做错了什么?
看起来很奇怪,pyspark应该能够处理括号
我在使用时使用了不同的语法agg()
。
我会使用.agg(sum("pagerank"), sum("pagerankRAW"))
,但没有收到此错误
我不认为你可以使用alias()
你的语法,因为我不知道把它放在哪里
带别名 .agg(sum("pagerank").alias("pagerank"), sum("pagerankRAW").alias("pagerankRAW))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句