Добавление текущего числа со строковым индексом в фрейм данных в Spark?

#java #apache-spark #apache-spark-sql

#java #apache-spark #apache-spark-sql

Вопрос:

Новое в Spark. Возможно ли добавить столбец индекса в существующий набор данных, который представляет собой комбинацию строки и текущего номера

Прямо сейчас я создаю динамический индекс с функцией monotonically_increasing_id

 List<Employee> columns = Arrays.asList(new Employee("john" ,"Lead"), new Employee("Doe" ,"Master"));
dataset = dataset.withColumn("index",monotonically_increasing_id());
dataset = dataset.select(col("index"),col("name"),col("desc"));

 index|name|  desc|
 ----- ---- ------ 
|    0|john|  Lead|
|    1| Doe|Master|
 

Хотелось бы иметь столбец индекса со строкой и номером индекса. что-то вроде приведенного ниже

  index|name|  desc|
 ----- ---- ------ 
|   E0|john|  Lead|
|   E1| Doe|Master|
 

Ответ №1:

Вы можете использовать concat для добавления a E в начале:

 dataset = dataset.select(concat(lit("E"), col("index")).alias("index"),col("name"),col("desc"));