我一直在使用“抽樣。flatMap(λx x):“一段時間後創建列表的列不過我改變了集群的共享訪問模式(使用統一目錄)我得到以下錯誤:
py4j.security。公共org.apache.spark.rdd Py4JSecurityException:方法。抽樣org.apache.spark.api.java.JavaRDD.rdd()類類org.apache.spark.api.java.JavaRDD不是白名單
我試圖解決這個錯誤通過添加:
“spark.databricks.pyspark。enablePy4JSecurity假”
然而,我得到以下錯誤:
“spark.databricks.pyspark。enablePy4JSecurity時是不允許選擇一個訪問模式”
有人知道如何使用抽樣catalouge統一使用一個集群時?
謝謝你!
嗨@Suteja卡努裏人,
在這種情況下我用pyspark dataframe,但我想讓阿萊值列在dataframe和創建一個列表。我使用這個列表在另一個dataframe過濾列。(見下麵的例子):
value_list = pysparkDF.select (< column_name >) .distinct .rdd ()。flatMap(λx: x) .collect ()
filtered_table = DF2.filter (DF2。< column_name > .isin (value_list))
但是我將嚐試尋找方法來避免dataframe格式的列表和保持。
彼得森@Christine:
您可以實現這一目標沒有收集數據到一個使用火花的內置DataFrame操作列表。
您可以使用連接操作過濾DF2基於從pysparkDF列中不同值。這裏有一個例子:
filtered_table = DF2。加入(pysparkDF.select (< column_name >) .distinct () = DF2。< column_name > = = pysparkDF。< column_name >、=“內在”)
這段代碼將執行內連接DF2和pysparkDF使用列名,這將有效地過濾DF2不同值的基礎上在pysparkDF列。注意,這個方法將返回一個新的DataFrame而不是一個列表,應該更有效率更大的數據集
@Suteja卡努裏人
讓我知道如果我必須這樣做抽樣。地圖上一個列在json數據,然後讀它作為一個json字符串pyspark !
我怎麼能這麼做! !
示例Syantx我想實現在一個共享集群相關的同樣的錯誤”spark.databricks.pyspark.enablePy4JSecurity”
語法:spark.read.json (df.rdd。地圖(λx: x [0]))
什麼將是相同的最佳選擇! !