嗨!
之前我們使用磚回購我們使用了魔法跑各種實用的python函數從一個筆記本內部其他筆記本,fex喜歡閱讀從一個jdbc連接。我們現在計劃轉向回購利用帶給我們的奇妙的CI / CD的可能性。但我們遇到了一些挑戰。
首先,我已經明白,你不能使用魔法跑筆記本。隻允許arbritary文件被使用。然後我們改寫從筆記本到. py文件,成功導入功能但火花相關錯誤發生。
這是我設置的概述:
python文件函數所在的文件夾“跑龍套”和筆記本我想利用它在文件夾“著陸”。
函數是這樣的:
類qybele_db_connection: #這個類創建了一個安全連接到海洋數據庫jdbcHostname = " x " jdbcPort = 3306 jdbcDatabase = " x " jdbcUrl = " jdbc: mysql: / / {0}: {1} / {2}”。形式at(jdbcHostname, jdbcPort, jdbcDatabase) #always use the databricks secrets manager to store password jdbcpassword = 'x' connectionProps = { "user": 'x', "password": jdbcpassword } @staticmethod def read(spark_session,query=str): """ this static method uses the above variables in a spark.read.jdbc function to create the connection. Note that the function takes in a string, which is a query and passes it to the "table" method in the spark function. """ try: print('Executing query') df=spark.read.jdbc(url=qybele_db_connection.jdbcUrl, table=query, properties=qybele_db_connection.connectionProps) except Exception as e: raise Exception("Issue with reading from seas database") return df
這就是我如何進口到筆記本: