我收到以下错误:

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) 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!