Я либо не знаю, что я ищу, либо отсутствует документация. Последнее, кажется, имеет место, учитывая это:
http://spark.apache.org/docs/2.2.2/api/java/org/apache/spark/sql/functions.html#to_json-org.apache.spark.sql.Column-java.util.Map-
"параметры - параметры, управляющие преобразованием столбца структуры в строку json. Принимает те же параметры и источник данных json."
Отлично! Итак, какие у меня варианты?
Я делаю что-то вроде этого:
Dataset<Row> formattedReader = reader
.withColumn("id", lit(id))
.withColumn("timestamp", lit(timestamp))
.withColumn("data", to_json(struct("record_count")));
... и я получаю такой результат:
{
"id": "ABC123",
"timestamp": "2018-11-16 20:40:26.108",
"data": "{\"record_count\": 989}"
}
Мне бы хотелось (убрать обратную косую черту и кавычки из «данных»):
{
"id": "ABC123",
"timestamp": "2018-11-16 20:40:26.108",
"data": {"record_count": 989}
}
Это один из вариантов случайно? Есть ли лучшее руководство для Spark? Самое расстраивающее в Spark - это не то, что я делаю, а то, что он может делать.