Я использую java 8 для создания моего первого задания Spark.
У меня есть JavaRDD<Row>
со следующей схемой:
List<StructField> fields = Arrays.asList(
DataTypes.createStructField("lastName", DataTypes.StringType, false),
DataTypes.createStructField("firstName", DataTypes.StringType, false),
DataTypes.createStructField("age", DataTypes.LongType, false),
DataTypes.createStructField("gender", DataTypes.StringType, false));
Я хотел бы сохранить эти данные в файлы, сгруппированные по столбцу lastName
, поэтому я сделал это:
dff
.repartition(1)
.write()
.mode (SaveMode.Overwrite)
.partitionBy("lastName")
.format("com.databricks.spark.csv")
.option("delimiter", "\t")
.option("encoding", "UTF-8")
.option("header", "true")
.csv(cmd.getOptionValue("dir"));
И я получил несколько каталогов (lastName=*something*
), и каждый из них содержит файл, который начинается с part-X.
НО - я хочу, чтобы столбец lastName
также был частью содержимого файлов - это возможно? и если это - как?
Спасибо!