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

無形的空間當閱讀. csv文件

BAZA
新的貢獻者二世

. csv文件導入時主要在分隔符和/或落後的空地,字符串的輸出結果似乎減少輸出表或當使用.display()但實際上不修剪。
可以確定的值不修剪,因為在聲明中僅包含了工作空間時。

熱修複補丁是使用修剪(),以確保進口數據沒有前導或尾隨空格。
我建議,如果有前導或尾隨空格輸入. csv文件(錯誤地),然後輸出表中這些空間是可見的。

附件是最小可行的例子導入sample_data筆記本(CSV_leading_Space_Bug筆記本)。csv文件。因為我不能提交任意附件我將筆記本和sample_data的內容寫。csv下麵這樣一個簡單的複製和粘貼再現了失敗。重要的是,sample_data的空的空間。csv保持。

最好的問候,
布魯諾安東尼奧

sample_data.csv
名稱、體育城市,得分
安娜,足球,巴黎,123年
布魯諾,網球,羅馬,75年
Catherina,排球,奧斯陸,66年
迭戈、衝浪、巴塞羅那,81年

CSV_leading_Space_Bug筆記本

#磚筆記本的來源
#魔法%醫學博士
#魔法# # . csv文件導入的例子與前導和尾隨空白空間
#魔法
#魔法導入. csv文件與周圍空間分隔符的結果在* *看不見的前導和尾隨空白空間* *很難調試。
#魔術熱修複補丁是使用修剪()的函數,而是一個永久修複請求。

- - - - - - - - - - - #命令

從pyspark.sql。類型進口StructType、StructField StringType、LongType IntegerType, DecimalType, DateType, ByteType BooleanType

- - - - - - - - - - - #命令

#讀csv文件

sampleDataFilePath = " < path-to-file > / sample_data.csv "

模式= StructType ([StructField(“名字”,StringType(),真的),
StructField(“體育”,StringType(),真的),
StructField(“城”,StringType(),真的),
StructField(“分數”,IntegerType(),真的)

])

df = (spark.read.format (csv)
. schema(模式)
.options(頭= True, enforceSchema = True, inferSchema = False, 9 = "、")
.load (sampleDataFilePath)
)

df.createOrReplaceTempView (“sample_data”)

- - - - - - - - - - - #命令

#魔法% sql
#魔法select *
#魔法從sample_data

- - - - - - - - - - - #命令

#魔法% python
#魔法spark.sql (“””
#魔法select *
#魔法從sample_data
#魔法”“”).display ()

- - - - - - - - - - - #命令

#魔法%醫學博士
#魔法似乎首尾空格的字符串列被削減了。但事實並非如此:

- - - - - - - - - - - #命令

#魔法% sql
#魔法select *
#魔法從sample_data
#魔法城市=“巴黎”

- - - - - - - - - - - #命令

#魔法% sql
#魔法select *
#魔法從sample_data
#魔法城市=“巴黎”

- - - - - - - - - - - #命令

#魔法% sql
#魔法select *
#魔法從sample_data
#魔法運動=“衝浪”

- - - - - - - - - - - #命令

#魔法% sql
#魔法select *
#魔法從sample_data
#魔法運動=“衝浪”

- - - - - - - - - - - #命令

#魔法% sql
#魔法select *
#魔法從sample_data
#魔法運動=“衝浪”

- - - - - - - - - - - #命令

#魔法% sql
#魔法select *
#魔法從sample_data
#魔法運動=“衝浪”

- - - - - - - - - - - #命令

#魔法%醫學博士
#魔法# #的建議
#魔法
#魔術熱修複補丁是使用的削減(),以確保進口數據沒有前導或尾隨空格。
#魔法
#魔法我建議,如果有前導或尾隨空格輸入. csv文件(錯誤地),然後輸出表中這些空間是可見的。

7回複7

werners1
尊敬的貢獻者三世

我明白了。
如果你真的需要空間(因此削減是不可取的),你可以嚐試使用正則表達式檢測空間。

BAZA
新的貢獻者二世

如果我使用一個字符串的子串選擇字符則返回一個空,但不是空字符串。我不能手動選擇單元格的值。通過複製和粘貼輸出到excel,我可以選擇的空間和一個在線譯碼器顯示一個\ x20的性格。

如果我concat一堆相同的字符串的子串返回的值空間,我可以選擇。通過複製和粘貼在一個在線解碼器我設法識別字符\ x0A \ x20。一個換行空間(s)緊隨其後。它總是始於\ x0A然後X乘以\ x20的X的子串的數量我concat - 1。第一個字符串的子串是用來控製。

我認為這些空間應該是可見的和可選擇的。

werners1
尊敬的貢獻者三世

同意

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

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

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

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

Baidu
map