[英]Datatype validation of Spark columns in for loop - Spark DataFrame
我試圖在進入循環之前驗證DataFrame的數據類型,在其中嘗試進行SQL計算,但是數據類型驗證沒有通過,也沒有進入循環內部。 該操作僅需要在數字列上執行。
如何解決呢? 這是處理數據類型驗證的正確方法嗎?
//get datatype of dataframe fields
val datatypes = parquetRDD_subset.schema.fields
//check if datatype of column is String and enter the loop for calculations.
for (val_datatype <- datatypes if val_datatype.dataType =="StringType")
{
val dfs = x.map(field => spark.sql(s"select * from table"))
val withSum = dfs.reduce((x, y) => x.union(y)).distinct()
}
您正在將dataType與永遠不會為真的字符串進行比較(對我而言,編譯器抱怨它們不相關)。 dataType是一個對象,它是org.apache.spark.sql.types.DataType的子類型。
嘗試用替換您的
for (val_datatype <- datatypes if val_datatype.dataType.isInstanceOf[StringType])
無論如何,您的for循環只會聲明val,而不會對其進行任何處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.