2016-03-15 16 views
8

Parke ve parke dosyası yazmak için Spark SQL kullanıyorum.Spark SQL - DataFrame'i metin dosyasına nasıl yazılır?

Ancak bazı durumlarda, DataFrame'u Json veya Parquet yerine metin dosyası olarak yazmam gerekiyor.

Herhangi bir varsayılan yöntem destekleniyor mu yoksa bu DataFrame'i RDD'a dönüştürmek ve saveAsTextFile() yöntemini kullanmak zorunda mıyım?

cevap

11

o `df.select olmalıdır bu

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

gibi sonradan bir CSV dosyasından bir CSV dosyası ve yüke direkt olarak kaydedebilir Databricks Spark-CSV Kullanma ("yıl", "model"). Write.format' df.select ("year", "model") yerine write(). format'? Aksi takdirde bir 'TypeError: 'DataFrameWriter' nesnesi callable 'hatası değil – ajkl

+2

Bu Spark 1.3 için sağlanan resmi bir örnektir. Spark 1.4+ kullanıyorsanız, df.select ("year", "model") kullanmalısınız. –

İlgili konular