繁体   English   中英

python spark将dataframe列数据类型改为int错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM