取消
顯示的結果
而不是尋找
你的意思是:

Pyspark DataFrame:將一列從字符串轉換成浮點數/雙

SohelKhan
新的貢獻者二世

Pyspark 1.6: DataFrame:將一列從字符串轉換成浮點數/雙

我有兩個列在裝載dataframe這兩個字符串。

DF = rawdata。選擇(“房子的名字”,“價格”)

我想把DF。價格浮動。

DF = rawdata。選擇(房子的名字,浮子(“價格”))#沒有工作

DF (DF。價格=浮動(DF.price) #沒有工作

DF。價格= DF.price.astype(浮動)#熊貓像腳本並不奏效

請幫助將它Dataframe嗎?

我知道如何將抽樣:DF。地圖(λx:浮動(x.price)

但是,我想在Dataframe做所有的轉換。

注意:我沒有相同的Beplay体育安卓版本接口平台Databrick平台,你可以改變列類型在加載該文件。

1接受解決方案

接受的解決方案

raela
新的貢獻者三世

函數可以將指定的列轉換為不同的數據類型。你不應該需要一個UDF。如果rawdata DataFrame,這應該工作:

https://spark.apache.org/docs/latest/api/python/pyspark.sql.html pyspark.sql.Column.cast

df = rawdata。選擇(坳(房子的名字),rawdata.price.cast(浮動).alias(“價格”))

在原帖子查看解決方案

5回複5

zjffdu
新的貢獻者二世

您可以使用udf。但不幸的是,沒有這個類型轉換裝入的。

sqlContext.udf。注冊(“浮動”,λx:浮動(x))

從pyspark.sql。進口expr函數

DF = rawdata。選擇(房子的名字,expr(浮動(“價格”))

SohelKhan
新的貢獻者二世

我固定它,如下所示:

從pyspark.sql。功能導入udf
從pyspark.sql。類型進口StringType

def string_to_float (x):
返回浮點數(x)

udfstring_to_float = udf (string_to_float StringType ())
rawdata.withColumn(“名字”,udfstring_to_float (“numberfloat”))

[8]:DataFrame[名稱:字符串,number_int: int, numberfloat:雙)

SohelKhan
新的貢獻者二世

謝謝你的建議。對不起,它沒有工作。

從pyspark.sql。功能導入udf

sqlContext.udf。注冊(“浮動”,λx:浮動(x))

從pyspark.sql。進口expr函數

DF = rawdata。選擇(“名字”,expr(浮動(numberfloat)))

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ValueError回溯(最近調用最後)

< ipython -輸入- 13 - 243 - d7c9f050e >在<模塊> ()

從pyspark.sql 4。功能導入世博會

5 - - - - - >

6 df = rawdata。選擇(“名字”,expr(浮動(numberfloat)))

ValueError:不能將字符串轉換成浮點數:numberfloat

raela
新的貢獻者三世

函數可以將指定的列轉換為不同的數據類型。你不應該需要一個UDF。如果rawdata DataFrame,這應該工作:

https://spark.apache.org/docs/latest/api/python/pyspark.sql.html pyspark.sql.Column.cast

df = rawdata。選擇(坳(房子的名字),rawdata.price.cast(浮動).alias(“價格”))

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map