我收到以下错误:
18/03/14 15:31:11 ERROR ApplicationMaster: User class threw exception: org.apache.spark.sql.AnalysisException: Table or view not found: products; line 1 pos 42
这是我的代码:
val spark = SparkSession
.builder()
.appName("Test")
.getOrCreate()
val products = spark.read.parquet(productsPath)
products.createGlobalTempView("products")
val q1 = spark.sql("SELECT PERCENTILE(product_price, 0.25) FROM products").map(_.getAs[Double](0)).collect.apply(0)
我做错了什么? 不使用 sql
是否可以在 Spark 中做同样的事情?
请您参考如下方法:
临时 View
只需使用 createOrReplaceTempView
作为
products.createOrReplaceTempView("products")
val q1 = spark.sql("SELECT PERCENTILE(product_price, 0.25) FROM products").map(_.getAs[Double](0)).collect.apply(0)
全局临时 View
如果您使用 global temp view那么你应该这样做
products.createGlobalTempView("products")
val q1 = spark.sql("SELECT PERCENTILE(product_price, 0.25) FROM global_temp.products").map(_.getAs[Double](0)).collect.apply(0)