scala - 在 Spark 中使用惯用的 Scala
问题描述
我有以下表达,
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")
我想把它转换成一个使用 Dataset 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"))
`
推荐阅读
- javascript - Puppeteer $.eval 选择嵌套元素
- android - 即使有权限,USB opendevice 也会失败 - HostAPI 受到限制
- python-3.x - 具有多列的方差-协方差矩阵
- security - 由于 Internet Explorer 免于安全更新,我们是否应该禁止我们的网站在此浏览器中运行?
- javascript - 在 Vue 中使用组件声明数据
- dataframe - 将时间序列从 CSV 加载到 DataFrame
- python - 如何将共享/托管字典与进程池一起使用(Python 3.x)
- javascript - addPositionedImage() 未按预期响应
- database - ORA-28000: 帐户被锁定
- bash - Dockerfile:附加变量不会在 RUN 指令之间持久化