Generar datos a utilizar para leer y escribir JSON
Ejemplo de datos aleatorios para utilizar en los siguientes apartados
data = [] for x in range(5): data.append((random.randint(0,9), random.randint(0,9))) df = spark.createDataFrame(data, ("label", "data")) df.show()
+-----+----+ |label|data| +-----+----+ | 4| 0| | 7| 0| | 1| 1| | 3| 8| | 3| 5| +-----+----+
Escribir datos en formato JSON
path_json = "/prueba.json" # Leer desde HDFS path_json = "D:/prueba.json" # Leer desde fichero local df.write \ .mode("overwrite") \ .format("json") \ .save(path_json)
Leer datos en formato JSON
df2 = spark\ .read\ .option("multiline", "true") \ .json(path_json) df2.show()
+-----+----+ |label|data| +-----+----+ | 4| 0| | 7| 0| | 1| 1| | 3| 8| | 3| 5| +-----+----+
Escribir datos en formato JSON comprimidos con gzip
path_json_gzip = "/prueba_gzip.json" # Leer desde HDFS path_json_gzip = "D:/prueba_gzip.json" # Leer desde fichero local df.write\ .mode("overwrite")\ .format("json")\ .option("compression", "gzip")\ .save(path_json_gzip)
Leer datos en formato JSON comprimidos con gzip
df2 = spark\ .read\ .option("multiline", "true") \ .json(path_json_gzip) df2.show()
+-----+----+ |label|data| +-----+----+ | 4| 0| | 7| 0| | 1| 1| | 3| 8| | 3| 5| +-----+----+
Escribir datos en formato JSON comprimidos con deflate
path_json_deflate = "/prueba_deflate.json" # Leer desde HDFS path_json_deflate = "D:/prueba_deflate.json" # Leer desde fichero local df.write\ .mode("overwrite")\ .format("json")\ .option("compression", "deflate")\ .save(path_json_deflate)
Leer datos en formato JSON comprimidos con deflate
df2 = spark\ .read\ .option("multiline", "true") \ .json(path_json_deflate) df2.show()
+-----+----+ |label|data| +-----+----+ | 4| 0| | 7| 0| | 1| 1| | 3| 8| | 3| 5| +-----+----+
Escribir datos en formato JSON comprimidos con bzip2
path_json_bzip2 = "/prueba_bzip2.json" # Leer desde HDFS path_json_bzip2 = "D:/prueba_bzip2.json" # Leer desde fichero local df.write\ .mode("overwrite")\ .format("json")\ .option("compression", "bzip2")\ .save(path_json_bzip2)
Leer datos en formato JSON comprimidos con bzip2
df2 = spark\ .read\ .option("multiline", "true") \ .json(path_json_bzip2) df2.show()
+-----+----+ |label|data| +-----+----+ | 4| 0| | 7| 0| | 1| 1| | 3| 8| | 3| 5| +-----+----+
0 comentarios