web-dev-qa-db-fra.com

SparkSQL - Lire le fichier de parquet directement

Je migre d'Impala vers SparkSQL en utilisant le code suivant pour lire un tableau:

my_data = sqlContext.read.parquet('hdfs://my_hdfs_path/my_db.db/my_table')

Comment puis-je appeler SparkSQL ci-dessus, de sorte qu'il puisse renvoyer quelque chose comme:

'select col_A, col_B from my_table'
12
Edamame

Après avoir créé un fichier Dataframe à partir du parquet, vous devez l’enregistrer en tant que table temporaire pour pouvoir exécuter sql queries dessus.

val sqlContext = new org.Apache.spark.sql.SQLContext(sc)

val df = sqlContext.read.parquet("src/main/resources/peopleTwo.parquet")

df.printSchema

// after registering as a table you will be able to run sql queries
df.registerTempTable("people")

sqlContext.sql("select * from people").collect.foreach(println)
28
bob

Avec SQL simple

Les fichiers JSON, ORC, Parquet et CSV peuvent être interrogés sans créer la table sur Spark DataFrame.

//This Spark 2.x code you can do the same on sqlContext as well
val spark: SparkSession = SparkSession.builder.master("set_the_master").getOrCreate

spark.sql("select col_A, col_B from parquet.`hdfs://my_hdfs_path/my_db.db/my_table`")
   .show()
20
mrsrinivas