【发布时间】:2017-09-09 18:14:06
【问题描述】:
我有一个简单的 Spark 应用程序,它旨在读取分隔的文本文件并将它们保存为 parquet 格式。
要求是处理一个平面数据文件(没有标题),该文件将伴随一个架构定义。最终结果是一个可执行的 jar,它作为命令行参数传递。
到目前为止,我查看的示例要么是从标题行推断架构,要么是在代码本身中定义架构。这是如何实现的?
import org.apache.spark.SparkConf;
import org.apache.spark.SparkContext;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
public class SparkCSVApplication {
public static void main(String[] args) {
SparkConf conf = new SparkConf().setAppName("JavaWordCount").setMaster("local");
// create Spark Context
SparkContext context = new SparkContext(conf);
// create spark Session
SparkSession sparkSession = new SparkSession(context);
Dataset<Row> df = sparkSession
.read()
.format("com.databricks.spark.csv")
.option("header", true)
.option("inferSchema", true)
.load("/Users/Chris/Desktop/Meter_Geocode_Data_150215_114551.csv"); //TODO: CMD line arg
//("hdfs://localhost:9000/usr/local/hadoop_data/loan_100.csv");
System.out.println("========== Print Schema ============");
df.printSchema();
System.out.println("========== Print Data ==============");
df.show();
System.out.println("========== Generate parquet file ==============");
df.write().parquet("/Users/Chris/Desktop/meter_geocode.parquet");
}
}
【问题讨论】:
标签: java apache-spark schema parquet