2016-03-15 18 views
8

Tôi đang sử dụng Spark SQL để đọc sách lát gỗ và viết.Spark SQL - Cách viết DataFrame vào tệp văn bản?

Nhưng một số trường hợp, tôi cần phải viết DataFrame làm tệp văn bản thay vì Json hoặc Parquet.

Có phương pháp mặc định nào được hỗ trợ hoặc tôi phải chuyển đổi DataFrame đó thành RDD sau đó sử dụng phương thức saveAsTextFile() không?

Trả lời

11

Sử dụng Databricks Spark-CSV bạn có thể lưu trực tiếp vào một tập tin CSV và tải từ một tập tin CSV sau đó như thế này

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

nó nên được 'df.select ("Năm", "mô hình") write.format'. thay vì 'df.select (" năm "," mô hình "). write(). format'? Khác bạn nhận được một 'TypeError: 'DataFrameWriter' đối tượng không phải là callable 'lỗi – ajkl

+2

Đây là ví dụ chính thức được cung cấp cho Spark 1.3. Nếu bạn sử dụng Spark 1.4+, bạn nên sử dụng 'df.select (" year "," model "). Write.format' như bạn đã đề xuất. –

Các vấn đề liên quan