J'essaie d'accéder à HIVE de l'application d'étincelle avec scala.Comment accéder à la table existante dans Hive?
Mon code:
val hiveLocation = "hdfs://master:9000/user/hive/warehouse"
val conf = new SparkConf().setAppName("SOME APP NAME").setMaster("local[*]").set("spark.sql.warehouse.dir",hiveLocation)
val sc = new SparkContext(conf)
val spark = SparkSession
.builder()
.appName("SparkHiveExample")
.master("local[*]")
.config("spark.sql.warehouse.dir", hiveLocation)
.config("spark.driver.allowMultipleContexts", "true")
.enableHiveSupport()
.getOrCreate()
println("Start of SQL Session--------------------")
spark.sql("select * from test").show()
println("End of SQL session-------------------")
Mais il se termine par un message d'erreur
tableau ou non trouvé
mais quand je lance show tables;
sous la console de ruche, je peux voir cette table et peut exécuter Select * from test
. Tous sont dans l'emplacement "utilisateur/ruche/entrepôt". Juste pour tester, j'ai essayé de créer une table aussi à partir de l'étincelle, juste pour trouver l'emplacement de la table.
val spark = SparkSession
.builder()
.appName("SparkHiveExample")
.master("local[*]")
.config("spark.sql.warehouse.dir", hiveLocation)
.config("spark.driver.allowMultipleContexts", "true")
.enableHiveSupport()
.getOrCreate()
println("Start of SQL Session--------------------")
spark.sql("CREATE TABLE IF NOT EXISTS test11(name String)")
println("End of SQL session-------------------")
Ce code a également exécuté correctement (avec la note de réussite), mais chose étrange est que je peux trouver ce tableau de la console ruche.
Même si j'utilise select * from TBLS;
dans mysql (dans ma configuration j'ai configuré mysql comme métastore pour ruche), je n'ai pas trouvé ces tables qui sont créées à partir de spark.
L'emplacement de l'étincelle est-il différent de celui de la console Hive?
Qu'est-ce que je dois faire si j'ai besoin d'accéder à la table existante dans la ruche de l'étincelle?
pouvez-vous faire 'spark.sql (« select * from .test ») montrent () ' –
mrsrinivas
même résultat et plus je peux créer une table à partir de l'étincelle et peut faire" insérer dans "mais la console de la ruche ne montre aucune table avec ce nom. La grande confusion est que d'où ces tables sont-elles sauvées? – Biswajit