Sam*_*Sam 5 mysql hive apache-spark apache-spark-sql spark-dataframe
我是 HIVE 和 SPARK 的新手。
考虑我在 SQL 中有以下查询。
select col1, col2, min(col3), first(col4) from tablename group by col1, col2
Run Code Online (Sandbox Code Playgroud)
因为我不想将 col4 包含在组中,所以我首先采用了(col4)(但我希望显示 col4)
我想在 Hive 中编写相同的查询,但在 Hive 中没有第一个函数。
参考:https : //docs.treasuredata.com/articles/hive-aggregate-functions
我想在Spark SQL 中编写相同的查询(使用数据帧)。同样,在 spark 聚合函数中也没有第一个函数。(* 可用的聚合方法有avg, max, min, sum, count. *)
参考:org.apache.spark.sql.GroupedData
例如:
val df1 = sqlContext.sql(" select * from TABLENAME").groupBy("COL1","COL2").agg("COL3" -> "MIN", "COL4" -> "????")
有没有办法用 hive 和 spark 写同样的东西?
如果您不想将其col4包含group by在 select 中sum(),则需要分析功能:
select col1,
col2,
min(col3) over (partition by col1, col2) as min_col3,
col4
from tablename;
Run Code Online (Sandbox Code Playgroud)
请参阅此处的文档: https: //cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalytics
| 归档时间: |
|
| 查看次数: |
6962 次 |
| 最近记录: |