繁体   English   中英

在 Spark 中使用惯用的 Scala

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM