[英]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.