Сначала я импортировал 2 таблицы в Spark из файлов CSV, используя следующие команды:
val df = spark.read.format("csv").option("header", "true").option("mode", "DROPMALFORMED").load("/Users/Me/Downloads/T.csv")
val df = spark.read.format("csv").option("header", "true").option("mode", "DROPMALFORMED").load("/Users/Me/Downloads/I.csv")
А теперь я хочу запустить следующую команду SQL в Spark, чтобы получить результаты:
> sc
> val sqlContext = new org.apache.spark.sql.SQLContext(sc)
> val dataFrame = spark.sql("SELECT T.Name, COUNT(T.Name) FROM T JOIN I ON T.Id=I.Id GROUP BY T.Name ORDER BY COUNT DESC LIMIT 5")
Но когда я запускаю его, я получаю ошибки:
WARN Hive:168 - Failed to access metastore. This class should not accessed in runtime.
org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
at org.apache.hadoop.hive.ql.metadata.Hive.getAllDatabases(Hive.java:1236)
at org.apache.hadoop.hive.ql.metadata.Hive.reloadFunctions(Hive.java:174)
at org.apache.hadoop.hive.ql.metadata.Hive.<clinit>(Hive.java:166)
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:503)
at org.apache.spark.sql.hive.client.HiveClientImpl.newState(HiveClientImpl.scala:183)
at org.apache.spark.sql.hive.client.HiveClientImpl.<init>(HiveClientImpl.scala:117)
и так далее.
Может кто-нибудь сказать мне, что я делаю неправильно и почему я получаю эти ошибки?
Я также установил Hive отдельно. Я также читал, что я должен добавить зависимости Hive в Spark, но после часа поиска в Google не смог найти ничего об этом.
Может кто-нибудь помочь мне с этим?
Я не могу выполнить этот запрос SQL = /
Заранее спасибо!