2016-03-15 16 views
8

Sto usando Spark SQL per leggere il parquet e scrivere file di parquet.Spark SQL - Come scrivere DataFrame in un file di testo?

Ma alcuni casi, ho bisogno di scrivere il DataFrame come file di testo invece di Json o Parquet.

Esistono metodi predefiniti supportati o devo convertire tale DataFrame in RDD quindi utilizzare il metodo saveAsTextFile()?

risposta

11

Usando Databricks Spark-CSV è possibile salvare direttamente in un file CSV e caricare da un file CSV in seguito come questo

import org.apache.spark.sql.SQLContext 

SQLContext sqlContext = new SQLContext(sc); 
DataFrame df = sqlContext.read() 
    .format("com.databricks.spark.csv") 
    .option("inferSchema", "true") 
    .option("header", "true") 
    .load("cars.csv"); 

df.select("year", "model").write() 
    .format("com.databricks.spark.csv") 
    .option("header", "true") 
    .option("codec", "org.apache.hadoop.io.compress.GzipCodec") 
    .save("newcars.csv"); 
+1

dovrebbe essere 'df.select ("anno", "modello"). Write.format' invece di 'df.select (" year "," model "). write(). format'? Altrimenti si ottiene un errore TypeError: 'DataFrameWriter' non è callable ' – ajkl

+2

Questo è l'esempio ufficiale fornito per Spark 1.3. Se usi Spark 1.4+ dovresti usare 'df.select (" year "," model "). Write.format' come hai suggerito. –

Problemi correlati