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

如何推斷csv模式默認所有列字符串使用火花——csv嗎?

Jasam
新的因素

我使用火花——csv實用程序,但我需要當它推斷模式默認字符串列中的所有列被轉換。

提前謝謝。

3回複3

User16789201666
因素二世

您可以手動指定模式,例如,從(https://github.com/databricks/spark-csv):

進口org.apache.spark.sql。SQLContext org.apache.spark.sql.types進口。{StructType, StructField, StringType IntegerType};

val sqlContext = new sqlContext (sc) val customSchema = StructType(數組(StructField(“年”,IntegerType,真的),StructField(“製造”,StringType,真),StructField(“模式”,StringType,真的),StructField(“評論”,StringType,真的),StructField(“空白”,StringType,真)))

val df = sqlContext。讀.format (com.databricks.spark.csv) .option(“標題”、“true”) / /使用所有文件的第一行標題. schema (customSchema) .load (“cars.csv”)

val selectedData = df。選擇selectedData(“年”、“模型”)。寫.format (com.databricks.spark.csv) .option .save(“標題”、“true”) (“newcars.csv”)

vadeka
新的貢獻者二世

我解決同樣的問題,我想所有的列作為文本和正確處理之後,我已經解決了通過重鑄所有列字符串後我推斷的模式。我不確定它是有效的,但它的工作原理。

# = ' pyspark路徑…' df =火花。讀\ .option (“inferschema”,“真正的”)\ . csv (df)

df的列。列:df = df.withColumn(列,df(列).cast('字符串'))

然後你再讀模式改變了

f = spark.read。選項(“模式”,df.schema) . csv (df)

這個但是不處理嵌套列,雖然csv不創建任何嵌套的結構體,我希望。

jhoop2002
新的貢獻者二世

@peyman如果我不想手動指定模式嗎?

例如,我有一個供應商不能建立一個有效的. csv文件。我隻是需要導入的地方所以我可以探索和發現錯誤的數據。

就像原作者的問題嗎?我怎麼告訴引發所有列讀字符串嗎?

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

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

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

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

Baidu
map