[英]python spark change dataframe column data type to int error
我想将列类型转换为int并获取前3行
df.withColumn("rn", rowNumber().over(windowSpec).cast('int')).where("rn"<=3).drop("rn").show()
但我这个错误
TypeError: unorderable types: str() <= int()
错误在这里:
.where("rn"<=3)
如果你将来遇到类似的问题,这就是你如何解决这个问题的方法。 以下
TypeError: unorderable types: str() <= int()
是一个Python异常,没有Py4JError
。 这通常意味着您可以解决JVM问题并专注于核心Python。 您明确比较事物的代码中唯一的部分是:
"rn" <= 3
如果你想要它是一个SQL文字,你应该传递一个字符串:
.where("rn <= 3")
如果要将rn
解析为列使用col
函数:
from pyspark.sql.functions import col
.where(col("rn") <= 3)
最新版本中也删除了rowNumber
函数。 您应该使用row_number
来实现向前兼容性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.