我想讀一個csv和做一個活動從azure存儲賬戶使用磚shell腳本。我想這個shell腳本添加到我的其他來源的python代碼。我已經創建的小部件在python文件路徑。我已經創建了變量命名file_datepath和小部件的數據。我想讀csv從azure存儲賬戶使用file_datepath變量一個shell命令。
我試著下麵,它不工作。
dbutils.widgets。文本(“source_storage_path”、“datafolder /數據/”)
dbutils.widgets。文本(“file_datepath”、“2022/12 /”)
source_storage_path = dbutils.widgets.get (“source_storage_path”)
file_datepath = dbutils.widgets.get (“file_datepath”)
% sh tr ' \ n ' ' ' < ' / dbfs / mnt / {source_storage_path} / {file_datepath} / *。csv ' > ' / dbfs / mnt / {source_storage_path} / {file_datepath} / * _new.csv”
但這是沒有這樣的文件或directry給我錯誤。我試著用美元和一切。似乎沒有什麼工作。請幫助@Sherinus @Hubert杜德克@Werner Stinckens
你好維爾納,
我有一個csv雙匕首劃和utf - 16編碼。它有額外的線條和空間一些行結尾CRLF和一些以低頻。所以,我創建了一個shell腳本處理這個問題。現在,我想把這個和我的大的python shell腳本命令。
% sh tr ' \ n ' ' ' < ' / dbfs / mnt / datalake /數據/文件。csv ' > ' / dbfs / mnt / datalake /數據/ file_new.csv '
dff = spark.read。選項(“頭”,“真正的”)\
.option (“inferSchema”,“真正的”)\
.option(“編碼”,“utf - 16”) \
.option(“分隔符”、“‡‡,‡‡”)\
.option \(“多行”,真正的)
. csv (“/ mnt / datalake /數據/ file_new.csv”)
dffs_headers = dff.dtypes
因為我在dffs_headers:
columnLabel =我[0]
newColumnLabel = columnLabel.replace (“‡‡’,”) .replace (“‡‡“,”)
dff = dff。的withColumn (newColumnLabel regexp_replace (columnLabel, ' ^ \ \‡‡| \ \‡‡$ | \ \‡‡“,”)
如果columnLabel ! = newColumnLabel:
dff = dff.drop (columnLabel)
#(顯示器(dff)
顯示器(dff))
現在,我想parameterise每條路徑這為什麼我寫的小部件,部件等