csv - true - spark sql tutorial
Cuadro de datos Spark guardar en un solo archivo en la ubicaciĆ³n de HDS (1)
No es posible usar la biblioteca de chispa estándar, pero puede usar la API de Hadoop para administrar el sistema de archivos: guarde la salida en el directorio temporal y luego mueva el archivo a la ruta solicitada. Por ejemplo (en pyspark):
df.coalesce(1) /
.write.format("com.databricks.spark.csv") /
.option("header", "true") /
.save("mydata.csv-temp")
from py4j.java_gateway import java_import
java_import(spark._jvm, ''org.apache.hadoop.fs.Path'')
fs = spark._jvm.org.apache.hadoop.fs.FileSystem.get(spark._jsc.hadoopConfiguration())
file = fs.globStatus(sc._jvm.Path(''mydata.csv-temp/part*''))[0].getPath().getName()
fs.rename(sc._jvm.Path(''mydata.csv-temp/'' + file), sc._jvm.Path(''mydata.csv''))
fs.delete(sc._jvm.Path(''mydata.csv-temp''), True)
Esta pregunta ya tiene una respuesta aquí:
Tengo dataframe y quiero guardar en un solo archivo en la ubicación de hdfs.
Encontré la solución aquí. Escribo un solo archivo CSV usando spark-csv.
df.coalesce(1)
.write.format("com.databricks.spark.csv")
.option("header", "true")
.save("mydata.csv")
Pero todos los datos se escribirán en mydata.csv / part-00000 y yo quería ser mi archivo mydata.csv.
¿es eso posible?
cualquier ayuda aprecie