[英]Using Idiomatic Scala in Spark
我有以下表达,
val pageViews = spark.sql(
s"""
|SELECT
| proposal,
| MIN(timestamp) AS timestamp,
| MAX(page_view_after) AS page_view_after
|FROM page_views
|GROUP BY proposalId
|""".stripMargin
).createOrReplaceTempView("page_views")
我想把它转换成一个使用数据集 API
val pageViews = pageViews.selectExpr("proposal", "MIN(timestamp) AS timestamp", "MAX(page_view_after) AS page_view_after").groupBy("proposal")
问题是我不能在这个上调用createOrReplaceTempView
- 构建失败。
我的问题是如何将第一个转换为第二个并从中创建一个 TempView ?
您可以使用 Spark Sql 的函数一起摆脱 SQL 表达式
import org.apache.spark.sql.functions._
如下
pageViews
.groupBy("proposal")
.agg(max("timestamp").as("timestamp"),max("page_view_after").as("page_view_after"))
`
考虑到您有一个带有名称 pageViews 的pageViews
-
利用 -
pageViews
.groupBy("proposal")
.agg(expr("min(timestamp) AS timestamp"), expr("max(page_view_after) AS page_view_after"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.