【发布时间】:2018-06-27 09:26:50
【问题描述】:
我在 hdfs 中实时接收文件,它们具有相同的命名约定。
id_name_..._timestamp
我能否以某种方式在 spark (scala) 上定义此命名约定,以便稍后将其与 ID 进行比较?
谢谢
【问题讨论】:
标签: apache-spark hadoop naming convention
我在 hdfs 中实时接收文件,它们具有相同的命名约定。
id_name_..._timestamp
我能否以某种方式在 spark (scala) 上定义此命名约定,以便稍后将其与 ID 进行比较?
谢谢
【问题讨论】:
标签: apache-spark hadoop naming convention
你使用这样的东西:
spark.udf()
.register("get_only_file_name", (String fullPath) -> {
int lastIndex = fullPath.lastIndexOf("/");
return fullPath.substring(lastIndex, fullPath.length - 1);
}, DataTypes.StringType);
导入 org.apache.spark.sql.functions.input_file_name
#use the udf to get last token(filename) in full path
Dataset<Row> initialDs = spark.read()
.option("dateFormat", conf.dateFormat)
.schema(conf.schema)
.csv(conf.path)
.withColumn("input_file_name", get_only_file_name(input_file_name()));
【讨论】: