Saya memiliki kueri Spark SQL dalam file test.sql -
CREATE GLOBAL TEMPORARY VIEW VIEW_1 AS select a,b from abc
CREATE GLOBAL TEMPORARY VIEW VIEW_2 AS select a,b from VIEW_1
select * from VIEW_2
Sekarang, saya memulai spark-shell saya dan mencoba menjalankannya seperti ini -
val sql = scala.io.Source.fromFile("test.sql").mkString
spark.sql(sql).show
Ini gagal dengan kesalahan berikut -
org.apache.spark.sql.catalyst.parser.ParseException:
mismatched input '<' expecting {<EOF>, 'GROUP', 'ORDER', 'HAVING', 'LIMIT', 'OR', 'AND', 'WINDOW', 'UNION', 'EXCEPT', 'MINUS', 'INTERSECT', 'SORT', 'CLUSTER', 'DISTRIBUTE'}(line 1, pos 128)
Saya mencoba menjalankan pertanyaan ini 1 per 1 dalam pernyataan spark.sql yang berbeda dan itu berjalan dengan baik. Masalahnya adalah, saya memiliki 6-7 pertanyaan yang membuat tampilan sementara dan akhirnya saya memerlukan output dari tampilan terakhir saya. Apakah ada cara di mana saya dapat menjalankan SQL ini dalam satu pernyataan spark.sql. Saya telah mengerjakan Postgres SQL (Redshift) dan mampu menjalankan pertanyaan semacam itu. Di spark sql, saya harus memelihara banyak file dalam kasus ini.