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