簡體   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