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

我怎麼和火花dataframes指定列的數據類型嗎?

Raie
新的貢獻者三世

我正在做的事情:

spark_df = spark.createDataFrame (dfnew)

spark_df.write.saveAsTable(“違約。test_table”,指數= False,頭= True)

這個自動檢測數據類型和現在的工作。但是,如果數據類型不能檢測或檢測錯了嗎?主要是擔心雙打,int,長整型數字。

我測試了鑄件但它並不工作磚:

spark_df = spark.createDataFrame (dfnew.select (dfnew(年).cast (IntegerType)。as("年")))

有辦法養活DDL引發dataframe磚嗎?我應該不使用火花來創建表嗎?

1接受解決方案

接受的解決方案

Hubert_Dudek1
尊敬的貢獻者三世

  • 創建表之前和設置列類型(創建表……位置路徑(路徑)
  • dataframe你需要有相應的數據類型,您可以使用語法,隻是你的語法是錯誤的,這是正確的語法的例子:

從pyspark.sql。從pyspark.sql進口IntegerType類型。功能導入* dfnew = spark.createDataFrame([(“2022”),(“2021”),(“2020”)],["年"])dfnew = dfnew。withColumn(“年”,上校(“年”).cast (IntegerType ()))

在原帖子查看解決方案

3回複3

RKNutalapati
價值貢獻

嗨@Raie:它會造成更廣泛的數據幀數據類型例如長(Int /長整型數字)等。這取決於用例。如果您已經創建了一個表,想要覆蓋/附加數據,那麼您需要顯式地扮演每列的數據類型。

一種選擇是通過創建一個數據類和轉換DF DS

case類人(id: Int,名字:字符串)

dfnew.as[人]

Hubert_Dudek1
尊敬的貢獻者三世

  • 創建表之前和設置列類型(創建表……位置路徑(路徑)
  • dataframe你需要有相應的數據類型,您可以使用語法,隻是你的語法是錯誤的,這是正確的語法的例子:

從pyspark.sql。從pyspark.sql進口IntegerType類型。功能導入* dfnew = spark.createDataFrame([(“2022”),(“2021”),(“2020”)],["年"])dfnew = dfnew。withColumn(“年”,上校(“年”).cast (IntegerType ()))

Raie
新的貢獻者三世

由於@Hubert杜德克我改變了語法和進口所有的數據類型和鑄造工作!

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

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

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

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

Baidu
map