如何从JavaSparkContext获取HiveContext

时间:2017-10-18 17:52:50

标签: hadoop apache-spark hive hivecontext

在一些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表上执行操作?

谢谢!

2 个答案:

答案 0 :(得分:0)

您正在使用不再使用SQLContext的Spark 2.0或更高版本。 SparkSession enableHiveSupportsession的充分替代品。

所以你要做的只是你已经拥有的// 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());