[英]Python spark get stuck on rdd.collect
我是Spark世界的新手。 我正在使用pyspark在本地計算機上測試Spark。 我創建了以下腳本,但是當它到達rdd.collect()
方法時,它只會卡住。
sparkSession = SparkSession.builder.appName("SimpleApp")\
.getOrCreate()
_data_frame_reader_ = sparkSession.read.format("jdbc").option("url", url) \
.option("user", user) \
.option("password", password) \
.option("driver", "oracle.jdbc.driver.OracleDriver")
mytable = _data_frame_reader_.option("dbtable", 'my_test_table')
mytable .registerTempTable("my_test_table")
sql = 'SELECT * from my_test_table'
df = sparkSession.sql(sql)
for row in df.rdd.collect():
# do some operation
我的表只有大約50條記錄。 我可以通過SQLDeveloper連接到我的數據庫。
現在,我正在嘗試通過Jupyter Notebook執行此代碼。 它不會記錄任何錯誤,只需永遠執行即可。
我不知道發生了什么事。
感謝您的時間!
我知道發生了什么事。 我的表只有50條記錄,但與其他表有很多行的FK。 我讓該作業運行了30分鍾以上,但沒有完成。 我做了以下事情:
1-在數據庫配置中增加了獲取大小:
_data_frame_reader_ = sparkSession.read.format("jdbc").option("url", url) \
.option("user", user) \
.option("password", password) \
.option("fetchsize", "10000") \
.option("driver", "oracle.jdbc.driver.OracleDriver")
這將提高負載性能。 請參閱本文檔 。
2-我已經對查詢進行了調整,以僅獲取所需的記錄,包括一些聯接以及在其他表中創建wheres
來過濾依賴行。
現在我的工作在不到2分鍾的時間內完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.