Avoir des bases de données et des tables dans l'instance Hive. Je voudrais montrer des tableaux pour une base de données spécifique (disons 3_db).
+------------------+--+
| database_name |
+------------------+--+
| 1_db |
| 2_db |
| 3_db |
+------------------+--+
Si j'entre là-bas depuis le complexe bash-nothing, je fais juste ce qui suit:
show databases;
show tables from 3_db;
Lorsque j'utilise pyspark via ipython notebeook - mes astuces bon marché ne fonctionnent pas là-bas et me donnent une erreur sur la deuxième ligne (affichez les tableaux de 3_db) à la place:
sqlContext.sql('show databases').show()
sqlContext.sql('show tables from 3_db').show()
Qu'est-ce qui semble mal et pourquoi le même code fonctionne-t-il à un endroit et ne fonctionne-t-il pas à un autre?
sqlContext.sql("show tables in 3_db").show()
Une autre possibilité consiste à utiliser les méthodes Catalogue :
spark = SparkSession.builder.getOrCreate()
spark.catalog.listTables("3_db")
Sachez simplement que dans PySpark, cette méthode renvoie un list
et dans Scala, elle renvoie un DataFrame
.