2016-11-28 9 views
-2

Я очень недавно знаком Apache Spark.
Я уже настроил искру 2.0.2 на моем компьютере с локальными окнами. Я сделал с примером слова «с ярлыком».
Теперь у меня возникла проблема с выполнением SQL-запросов. Я искал то же самое, но не получил правильное руководство.Как выполнить sql-запросы в Apache Spark


Любая помощь очень ценится!
Спасибо в Advanced !!

+0

Итак, в чем проблема? Вы получаете ошибку? –

+0

error: not found: value sqlContext –

+0

Я получаю исключение выше при выполнении команды –

ответ

0

В Спарк 2.x больше не ссылаться на sqlContext, а spark, так что вам нужно сделать:

spark 
    .read 
    .format("jdbc") 
    .option("url", "jdbc:mysql://localhost:3306/mydb") 
    .option("driver", "com.mysql.jdbc.Driver") 
    .option("dbtable", "mydb") 
    .option("user", "root") 
    .option("password", "") 
    .load() 
2

Так что вам нужно, чтобы сделать эти вещи, чтобы сделать это,

В Спарк 2.0.2 у нас есть SparkSession, который содержит экземпляр SparkContext, а также экземпляр sqlContext.

Поэтому шаги были бы:

Шаг 1: Создание SparkSession

val spark = SparkSession.builder().appName("MyApp").master("local[*]").getOrCreate() 

Шаг 2: Загрузка из базы данных в случае Mysql.

val loadedData=spark 
     .read 
     .format("jdbc") 
     .option("url", "jdbc:mysql://localhost:3306/mydatabase") 
     .option("driver", "com.mysql.jdbc.Driver") 
     .option("mytable", "mydatabase") 
     .option("user", "root") 
     .option("password", "toor") 
     .load().createOrReplaceTempView("mytable") 

Шаг 3: Теперь вы можете запустить SQLQuery так же, как вы делаете в SqlDatabase.

val dataFrame=spark.sql("Select * from mytable") 
dataFrame.show() 

P.S: Было бы лучше, если вы используете DataFrame Api или даже лучше, если DataSet Апи, но для тех, вам нужно пройти через документации.

Ссылка Документация: https://spark.apache.org/docs/2.0.0/api/scala/index.html#org.apache.spark.sql.Dataset