簡體   English   中英

PySpark 使用正則表達式替換字符並刪除 Databricks 上的列

[英]PySpark Replace Characters using regex and remove column on Databricks

我正在嘗試從下面顯示的數據框中刪除一列和特殊字符。

下面用於創建數據框的代碼如下:

dt = pd.read_csv(StringIO(response.text), delimiter="|", encoding='utf-8-sig')

以上產生以下輸出:

在此處輸入圖像描述

我需要正則表達式的幫助來刪除字符  並刪除第一列。

至於正則表達式,我嘗試了以下方法:

dt.withColumn('COUNTRY ID', regexp_replace('COUNTRY ID', @"[^0-9a-zA-Z_]+"_ ""))

但是,我收到語法錯誤。

非常感謝任何幫助。

如果傳入列的位置是固定的,您可以使用正則表達式從列名中刪除額外的字符,如下所示


import re

colname = pdf.columns[0]
colt=re.sub("[^0-9a-zA-Z_\s]+","",colname)
print(colname,colt)
pdf.rename(columns={colname:colt}, inplace = True)

對於刪除索引列,您可以參考堆棧答案

您已將數據作為 pandas 數據框讀入。 據我所知,您需要一個火花數據框。 從 pandas 轉換為 spark 並重命名列。 這將刪除 pandas 默認索引列,在您的情況下,您將其稱為第一列。 然后,您可以重命名列。 下面的代碼

df=spark.createDataFrame(df).toDF('COUNTRY',' COUNTRY NAME').show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM