我有批量傳入的資料和來自旋轉另一列的值的幾列,因此列數各不相同,其中一列很少收到任何資料(“驚喜”),
因為此列并不總是被創建并且它在.select()陳述句中,所以有時它會中斷行程拋出和 AnalysisException。
我必須像這樣解決它,它似乎到目前為止作業,但我正在尋找一種更好的方法來解決這個問題,因為這看起來不像好的代碼:
try:
df = agg_sentiment \
.select('created_at', 'topic', 'counts',
'fear', 'joy', 'sadness', 'surprise', 'anger')
except Exception:
df = agg_sentiment \
.select('created_at', 'topic', 'counts',
'fear', 'joy', 'sadness', 'anger')
如您所見,我從除部分的選擇陳述句中洗掉了“驚喜”。PySpark 有辦法處理這種情況嗎?
uj5u.com熱心網友回復:
我認為您可以在選擇列之前檢查資料框中是否存在所需的列。
這是一個例子
import pyspark.sql.functions as fx
# All wanted columns including possible missing ones
colWanted = ['created_at', 'topic', 'counts',
'fear', 'joy', 'sadness', 'surprise', 'anger']
colSelectPossible = []
for col in colWanted:
if col in aggSentiment.columns:
# Column exists, so save it to select later on
colSelectPossible.append(col)
df = aggSentiment.select(colSelectPossible)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/465525.html
