我的数据集(SparkSql)中有 4 个字段,我的目标是从时间戳中提取小时,然后在 spark.sql 查询中按小时间隔进行分区
- 用户名(varchar)
- 时间戳(长)
- ipaddress(varchar)
现在这些是事情,我需要从 longtimestamp 中按 hour_interval 进行分区。
所以我在 mysql 中创建了一个测试表,我尝试了下面的命令,它适用于从时间戳中获取小时 _interval
SELECT username, originaltime , ipaddress, HOUR(FROM_UNIXTIME(originaltime / 1000)) as hourinterval FROM testmyactivity ;
这给出了以下输出
suresasash3456 1557731954785 1.1.1.1 1 7
现在我需要按这个 hour_interval 进行分区,但我做不到
以下是不起作用的查询
SELECT username, ipaddress , HOUR(FROM_UNIXTIME(originaltime / 1000)) as hourinterval, OVER (partition by hourinterval) FROM testmyactivity ;
以上给了我错误信息
在“按小时间隔分区”附近使用的正确语法)
预期输出步骤 1:Spark Sql 查询,可以从时间戳中提取小时,然后按小时间隔进行分区
Step2:在上述步骤之后,我可以在 hour_interval 上执行 groupByKey 以便我的数据集将平均分配给可用的执行程序
