使用java中的spark数据集读取avro数据

时间:2016-08-22 00:08:08

标签: apache-spark apache-spark-dataset spark-avro

我是新手,我正在尝试使用java加载avro数据来激发'数据集'(spark 1.6)。我在scala中看到了一些例子,但在java中没有。 任何指向java中示例的指针都会有所帮助。我尝试创建一个javaRDD,然后将其转换为'dataset'。我相信必须有一种直截了当的方式。

1 个答案:

答案 0 :(得分:1)

首先你需要设置hadoop.home.dir

System.setProperty("hadoop.home.dir", "C:/app/hadoopo273/winutils-master/hadoop-2.7.1");

然后创建一个Spark会话,指定avro文件的位置

SparkSession spark = SparkSession .builder().master("local").appName("ASH").config("spark.cassandra.connection.host", "127.0.0.1").config("spark.sql.warehouse.dir", "file:///C:/cygwin64/home/a622520/dev/AshMiner2/cass-spark-embedded/cassspark/cassspark.all/spark-warehouse/").getOrCreate();

在我的代码中使用嵌入式spark environement

// Creates a DataFrame from a specified file
Dataset<Row> df = spark.read().format("com.databricks.spark.avro") .load("./Ash.avro");
df.createOrReplaceTempView("words");
Dataset<Row> wordCountsDataFrame = spark.sql("select count(*) as total from words");
wordCountsDataFrame.show();

希望这会有所帮助