2017-07-07 104 views
0

我在Spark 2.0和Scala中使用GraphFrame。更改Spark GraphFrame中字符串的列

我需要刪除字符串類型(超出許多列)中的列的雙引號。 我試圖這樣做,使用UDF如下:

import org.apache.spark.sql.functions.udf 

val removeDoubleQuotes = udf((x:Any) => 
    x match{ 
     case s:String => s.replace("\"","") 
     case other => other 
    } 
) 

而且我得到以下錯誤,因爲任何類型中不GraphFrame支持。

java.lang.UnsupportedOperationException:架構類型的任何不 支持

什麼是一個解決方法嗎?

+1

做你的列有混合類型?爲什麼不把它只寫入字符串並僅將其應用於字符串列? –

+0

@JoeK因爲我有很多列,並試圖找到一種方法,而不是手動查找字符串列。 – MehrdadAP

回答

0

我認爲你沒有一個類型爲Any的列,你不能從udf返回不同的數據類型。您需要從udf返回一個數據類型。

如果列字符串,那麼你可以創建udf作爲

import org.apache.spark.sql.functions.udf 

val removeDoubleQuotes = udf((x:String) => s.replace("\"",""))