SparkSQL-читать файл паркета напрямую
Я мигрирую из Impala в SparkSQL, используя следующий код для чтения таблицы:
my_data = sqlContext.read.parquet('hdfs://my_hdfs_path/my_db.db/my_table')
Как вызвать SparkSQL выше, чтобы он мог вернуть что-то вроде:
'select col_A, col_B from my_table'
2 ответов
после создания фрейма данных из файла parquet вы должны зарегистрировать его как временную таблицу для запуска sql queries
на нем.
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)
мы может запускать SQL напрямую на таких файлах, как JSON, ORC, паркет и CSV без создания таблицы.
//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()