我試圖從數據框的列中刪除特殊字符(?)。從數據框的列中刪除特殊字符
我的數據是這樣的:
客戶端ID,PatientID
AR0001å,DH_HL704221157198295_91
AR00022,DH_HL704221157198295_92
我的原始數據的大小從我需要大約8TB擺脫這個特殊的角色。
代碼加載數據:
reader.option("header", true)
.option("sep", ",")
.option("inferSchema", false)
.option("charset", "ISO-8859-1")
.schema(schema)
.csv(path)
加載到數據幀後,當我做df.show()
它表明:
+--------+--------------------+ |ClientID| PatientID| +--------+--------------------+ |AR0001Ã¥|DH_HL704221157198...| |AR00022 |DH_HL704221157198...| +--------+--------------------+
代碼來替換這個角色:
df.withColumn("ClientID", functions.regexp_replace(df.col("ClientID"), "\å", ""));
但是這沒有奏效。在將數據加載到數據框中時,如果我將字符集更改爲「UTF-8」,它就可以工作。
我無法找到當前字符集(ISO-8859-1)的解決方案。
感謝您的回答。我無法從數據中刪除所有特殊字符。數據中有幾列像®這些特殊字符中的一些具有含義。我沒有說明要保留什麼和要刪除什麼的子集。這個要求是爲了從特定列中刪除給定的特殊字符。 – abhiadh
@abhiadh'使用ISO-8859-1(帶scala)時,regexp_replace(df.col(「ClientID」),「?¥」,「」)'似乎適用於我。 – Shaido
是的,確實有效。在傳遞給函數之前,我轉換了特殊字符「å」並且它工作正常。 'new String(「å」.getBytes(「UTF-8」),「ISO-8859-1」);' 謝謝 – abhiadh