/ / cómo convertir un archivo json anidado en csv en scala - json, scala, csv, apache-spark

cómo convertir un archivo json anidado en csv en scala - json, scala, csv, apache-spark

Quiero convertir mi json anidado en csv, utilicé

df.write.format("com.databricks.spark.csv").option("header", "true").save("mydata.csv")

Pero se puede usar a json normal pero no a json anidado. De cualquier forma que pueda convertir mi json anidado a csv? Se agradecerá la ayuda, ¡Gracias!

Respuestas

0 para la respuesta № 1

Leer json archivar en chispa y crear dataframe.

val path = "examples/src/main/resources/people.json"
val people = sqlContext.read.json(path)

Guarde el marco de datos utilizando chispa-csv

people.write
.format("com.databricks.spark.csv")
.option("header", "true")
.save("newcars.csv")

Fuente :

leer json

guardar en csv


0 para la respuesta № 2

Cuando le pides a Spark que convierta una estructura JSON aUn CSV, Spark solo puede mapear el primer nivel del JSON. Esto sucede debido a la simplicidad de los archivos CSV. Se trata de asignar un valor a un nombre. Es por eso que {"name1":"value1", "name2":"value2"...} Se puede representar como un CSV con esta estructura: name1,name2, ... value1,value2,... En su caso, está convirtiendo un JSON con varios niveles, por lo que la excepción Spark está diciendo que no puede descubrir cómo convertir una estructura tan compleja en un CSV.

Si intenta agregar solo un segundo nivel a su JSON, funcionará, pero tenga cuidado. Se eliminarán los nombres del segundo nivel para incluir solo los valores de una matriz.

Puedes echar un vistazo a este enlace para ver el ejemplo de los conjuntos de datos json. Incluye un ejemplo.

Como no tengo información sobre la naturaleza de los datos, no puedo decir mucho más sobre ellos. Pero si necesita escribir la información como un CSV, necesitará simplificar la estructura de sus datos.