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