. 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文件(錯誤地),然後輸出表中這些空間是可見的。