UDF无法在spark scala中获取文件名

时间:2017-10-06 13:14:00

标签: scala apache-spark spark-dataframe user-defined-functions

这就是我在火花数据框中使用UDF的方式..

<console>:545: error: not found: value get_cus_val
       df1result.withColumn("DataPartition", get_cus_val(input_file_name)).show() 

但是,当我运行这个时,我得到以下错误

df1result.withColumn("DataPartition", input_file_name).show()

但是如果我这样做的话,我能够获得完整路径的文件名称。

f(x)

知道我错过了什么吗?

2 个答案:

答案 0 :(得分:2)

这不起作用,因为您只注册SQL函数。你可以尝试

val get_cus_val = spark.udf.register("get_cus_val", (filePath: String) => filePath.split("\\.")(4))

df1result.selectExpr("*", "get_cus_val(input_file_name) as DataPartition").show()

答案 1 :(得分:0)

您可以尝试一下。它对我有用。

df.withColumn(“ file_name”,callUDF(“ get_cus_val”,input_file_name()))