我正在嘗試洗掉 "" 和 ; 來自我在 PySpark 中的 CSV 檔案。CSV 中的資料如下所示:
age;"job";"marital";"education";"default";"balance";"housing";"loan";"contact";"day";"month";"duration";"campaign";"pdays";"previous";"poutcome";"y"
58;"management";"married";"tertiary";"no";2143;"yes";"no";"unknown";5;"may";261;1;-1;0;"unknown";"no"
我正在使用的代碼是:
df = spark.read.options(delimiter=';').csv("C:/Project_bankdata.csv", header=True)
df1 = df.select([F.regexp_replace(c, '"', '').alias(c) for c in df.columns])
df1.show(10,truncate=0)
輸出:
|"age;""job"" |""marital""|""education""|""default""|""balance""|""housing""|""loan""|""contact""|""day""|""month""|""duration""|""campaign""|""pdays""|""previous""|""poutcome""|""y"""|
--------------- ----------- ------------- ----------- ----------- ----------- -------- ----------- ------- --------- ------------ ------------ --------- ------------ ------------ ------
|58;management |married |tertiary |no |2143 |yes |no |unknown |5 |may |261 |1 |-1 |0 |unknown |no |
我能夠從資料中洗掉引號,但不能從標題中洗掉。如何從標題中洗掉雙引號?
uj5u.com熱心網友回復:
如果我使用此輸入 CSV,我只能重現您的輸出:
"age;""job"";""marital"";""education"";""default"";""balance"";""housing"";""loan"";""contact"";""day"";""month"";""duration"";""campaign"";""pdays"";""previous"";""poutcome"";""y"""
"58;"management"";"married";"tertiary";"no";2143;"yes";"no";"unknown";5;"may";261;1;-1;0;"unknown";"no"
您可以將 CSV 讀取為文本檔案,"從每一行中洗掉所有雙引號,然后制作一個資料框。
rdd = spark.sparkContext.textFile(r"C:\temp\temp.csv")
rdd = rdd.map(lambda line: line.replace('"', '').split(';'))
header = rdd.first()
df = rdd.filter(lambda line: line != header).toDF(header)
df.show()
# --- ---------- ------- --------- ------- ------- ------- ---- ------- --- ----- -------- -------- ----- -------- -------- ---
# |age| job|marital|education|default|balance|housing|loan|contact|day|month|duration|campaign|pdays|previous|poutcome| y|
# --- ---------- ------- --------- ------- ------- ------- ---- ------- --- ----- -------- -------- ----- -------- -------- ---
# | 58|management|married| tertiary| no| 2143| yes| no|unknown| 5| may| 261| 1| -1| 0| unknown| no|
# --- ---------- ------- --------- ------- ------- ------- ---- ------- --- ----- -------- -------- ----- -------- -------- ---
筆記。這有效地從 CSV 檔案中洗掉了字串表示法。因此,只有在您沒有包含;其中的此類值時,這才會很好地作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/514440.html
