tutorial spark software que examples example scala apache-spark apache-spark-sql distributed-computing

scala - spark - Aplanando filas en la chispa



examples spark scala (1)

Puede utilizar la función de explode :

scala> import org.apache.spark.sql.functions.explode import org.apache.spark.sql.functions.explode scala> val test = sqlContext.read.json(sc.parallelize(Seq("""{"a":1,"b":[2,3]}"""))) test: org.apache.spark.sql.DataFrame = [a: bigint, b: array<bigint>] scala> test.printSchema root |-- a: long (nullable = true) |-- b: array (nullable = true) | |-- element: long (containsNull = true) scala> val flattened = test.withColumn("b", explode($"b")) flattened: org.apache.spark.sql.DataFrame = [a: bigint, b: bigint] scala> flattened.printSchema root |-- a: long (nullable = true) |-- b: long (nullable = true) scala> flattened.show +---+---+ | a| b| +---+---+ | 1| 2| | 1| 3| +---+---+

Estoy haciendo algunas pruebas de chispa usando scala. Por lo general, leemos archivos json que deben manipularse como en el siguiente ejemplo:

prueba.json:

{"a":1,"b":[2,3]}

val test = sqlContext.read.json("test.json")

¿Cómo puedo convertirlo al siguiente formato?

{"a":1,"b":2} {"a":1,"b":3}