pyspark记录列的日志
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyspark记录列的日志相关的知识,希望对你有一定的参考价值。
length = df.count()
df = df.withColumn("log", log(col("power"),lit(length)))
以下各行将引发此类错误。您能帮我用另一个值或另一个列作为基础来记录一列的日志。
TypeError Traceback (most recent call last)
<ipython-input-102-c0894b6127d1> in <module>()
1 #df.show()
2
----> 3 df = df.withColumn("log", log(col("power"),lit(2)))
5 frames
/content/spark-2.4.5-bin-hadoop2.7/python/pyspark/sql/column.py in __iter__(self)
342
343 def __iter__(self):
--> 344 raise TypeError("Column is not iterable")
345
346 # string methods
TypeError: Column is not iterable
答案
如果要使用不是在Spark数据帧上内置的功能,则可以使用用户定义的函数,在这种情况下,它看起来像这样:
from pyspark.sql.functions import udf
from math import log
@udf("float")
def log_udf(s):
return log(s,2)
df.withColumn("log", log_udf("power")).show()
以上是关于pyspark记录列的日志的主要内容,如果未能解决你的问题,请参考以下文章