Как определить соглашение об именовании файлов для входящих файлов в Spark - PullRequest
0 голосов
/ 27 июня 2018

Я получаю файлы в режиме реального времени в формате hdf, и они имеют одинаковое соглашение об именах.

id_name _..._ метка

Могу ли я как-то определить это соглашение об именах для spark (scala), чтобы я мог сравнить его позже с ID, например?

Спасибо

1 Ответ

0 голосов
/ 27 июня 2018

вы используете что-то вроде этого:

регистрация udf

spark.udf()
  .register("get_only_file_name", (String fullPath) -> {
     int lastIndex = fullPath.lastIndexOf("/");
     return fullPath.substring(lastIndex, fullPath.length - 1);
    }, DataTypes.StringType);

import 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()));
...