在一些Spark代码中,我看到程序员使用这样的代码来创建SparkContext
SparkSession session = SparkSession
.builder()
.appName("Spark Hive Example")
.config("spark.sql.warehouse.dir", warehouseLocation)
.enableHiveSupport()
.getOrCreate();
但我一直使用这种代码来创建JavaSparkContext。
SparkConf sparkConf = new SparkConf().setAppName("Simple App").setMaster("local");
JavaSparkContext spark = new JavaSparkContext(sparkConf);
从代码的后半部分开始,有什么方法可以让Hive Context在Hive表上执行操作?
谢谢!
答案 0 :(得分:0)
您正在使用不再使用SQLContext
的Spark 2.0或更高版本。 SparkSession
enableHiveSupport
是session
的充分替代品。
所以你要做的只是你已经拥有的// find music file URI from the sdcard
new ExternalStorageSdcardAccess( fileHandler ).scanPath( "file:///storage/C67A-18F7/Music/" );
function fileHandler( fileEntry ) {
// console.log( fileEntry.name + " | " + fileEntry.toURL() );
}
// create a button instance
let mbutton = new Button({
centerX: 0, top: [fbutton,100],
text: 'play music'
}).appendTo(ui.contentView);
// call the play media function from the button
mbutton.on('select', () => {
// load and play the music:
playAudio("file:///storage/C67A-18F7/Music/demo/testSound.mp3")
});
function playAudio(url) {
// Play the audio file at url
var my_media = new Media(url,
// success callback
function () {
console.log("playAudio():Audio Success");
},
// error callback
function (err) {
console.log("playAudio():Audio Error: " + err.code + err.message);
},
// status callback
function (status) {
console.log("playAudio():Audio Status: " + status);
}
);
// Play audio
my_media.play();
my_media.setVolume('1.0');
}
个实例。
答案 1 :(得分:0)
终于找到了解决方案。
SparkSession spark = SparkSession
.builder()
.appName("SampleApp")
.master("local")
.enableHiveSupport()
.getOrCreate();
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());