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

data.write.format (com.databricks.spark.csv)添加額外的引號

能為文林
新的貢獻者二世

0的最愛

我用下麵的代碼(pyspark)出口我csv數據幀:

data.write.format (“com.databricks.spark.csv”)。選項(分隔符= " \ t”,編解碼器=“org.apache.hadoop.io.compress.GzipCodec”) .save (“s3a: / / myBucket / myPath”)

注意,我使用

分隔符= " \ t”
我不想添加額外的引號在每個字段。然而,當我檢查輸出csv文件,仍然有一些字段被引號括起來。如。

abcdABCDAAbbcd ....
1234年_3456abcd……
“-12345678 abcd”……

引號似乎出現在主角的字段是“-”。為什麼會這樣,是否有辦法避免呢?謝謝!

3回複3

能為文林
新的貢獻者二世

我也試圖利用quoteMode = "沒有",但不起作用

SiddSingal
新的貢獻者二世

你能提供一些Python代碼創建了一個小型DataFrame演示了這種行為?

chaotic3quilibr
新的貢獻者三世

關閉默認的方式逃避的雙引號字符(“)與反斜杠字符(\)——即完全避免轉義所有的字符,您必須添加一個.option使用正確的參數()方法調用後.write()方法調用。選項()方法調用的目標是改變csv()方法的“發現”實例“引用”的角色,因為它散發出的內容。要做到這一點,你必須改變默認的“引用”實際上意味著什麼;即改變尋求從一個雙引號字符(\ u0000“)一個Unicode字符(實質上是提供Unicode NUL字符假設它不會發生在文檔)。

這是Scala代碼實現的效果。第二最後一行(這裏以魔法發生)是關鍵的線,在Python中看起來完全相同(在Scala一樣)。

val dataFrame =火花。sql (“SELECT * FROM some_table_with_odd_characters_column”) val unitEmitCsv = dataframe .write .option(“標題”,真的).option(“引用”、“\ u0000”) / /魔法發生. csv (“/ FileStore / temp.csv”)

這隻是其中之一試圖使用Apache火花和所學到的發射. csv文件。和上下文的更多信息,請參見我寫的博客名為“示例Apache火花ETL管道集成一個SaaS”。

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

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

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

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

Baidu
map