取消
顯示的結果
而不是尋找
你的意思是:

緊急- shell命令中使用Python變量磚筆記本

虛假的
新的貢獻者三世

我想讀一個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

4回複4

werners1
尊敬的貢獻者三世

是的我不認為它會工作。

當你執行一個shell命令,你工作在操作係統級別。Linux不知道DBFS Azure AWS或者……

如果你想這樣做,你必須掛載數據湖在Linux中,這並不是那麼容易。

磚(或火花的應用程序)這一切並給你dbfs所以你不需要擔心連接。

我可以問你為什麼要做這個shell命令?

虛假的
新的貢獻者三世

你好維爾納,

我有一個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每條路徑這為什麼我寫的小部件,部件等

werners1
尊敬的貢獻者三世

不需要一個shell腳本。火花和正則表達式可以處理最混亂的文件。

SS2
價值貢獻

你可以掛載存儲賬戶,然後可以設置env水平變量,可以做你想做的的操作。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map