簡體   English   中英

使用udf函數刪除DataFrame字段中的換行符會導致TypeTag錯誤

[英]Removing newlines in a DataFrame field with udf function gives TypeTag Error

val trim: String => String = _.trim.replace("[\\r\\n]", "")

def main(args: Array[String]) {    
    val spark = ...    ...
    import spark.implicits._    
    val trimUDF = udf[String,String](trim)

    val df = spark.read.json(df_path)    ...    
    val fixed_dblogs_df = df.withColumn("qp_new", trimUDF('qp))    ... 
}

運行此代碼時,出現編譯時錯誤:

沒有適用於字符串的TypeTag

這個錯誤是我定義udf函數的地方。 我不知道為什么會這樣。 我以前使用過udf函數,但是此錯誤正在發生。 我使用了Spark 2.1.1,僅此而已。

該代碼的目的是刪除我的StringType字段之一中的所有新行,而我只希望它中沒有任何新行

您使用UDF而不是內置的replace_regexp是否有某些原因?

val fixed_dblogs_df = df.withColumn("qp_new", replace_regexp('qp, "[\\r\\n]", "") ...)

UDF的突破Spark的計划優化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM