我想在通过spark sql选择列时删除毫秒部分。
例如:2012-10-17 13:02:50.320
我想要的结果为 2012-10-17 13:02:50 我尝试过
spark.sql("select cast(datecol as timestamp) from table
spark.sql("select unix_timestamp(datecol,"yyyy-MM-dd HH:mm:ss") from table
Run Code Online (Sandbox Code Playgroud)
两者似乎都不起作用,子字符串有效,但我需要时间戳格式,还有其他方法吗?
提前致谢
我有一个包含两列数据的数据框,如下所示
+----+-----------------+
|acct| device|
+----+-----------------+
| B| List(3, 4)|
| C| List(3, 5)|
| A| List(2, 6)|
| B|List(3, 11, 4, 9)|
| C| List(5, 6)|
| A|List(2, 10, 7, 6)|
+----+-----------------+
Run Code Online (Sandbox Code Playgroud)
我需要如下结果
+----+-----------------+
|acct| device|
+----+-----------------+
| B|List(3, 4, 11, 9)|
| C| List(3, 5, 6)|
| A|List(2, 6, 7, 10)|
+----+-----------------+
Run Code Online (Sandbox Code Playgroud)
我试过如下,但似乎不起作用
df.groupBy("acct").agg(concat("device"))
df.groupBy("acct").agg(collect_set("device"))
请让我知道如何使用 Scala 实现这一目标?
我试图在 pyspark 中运行以下代码。
dbutils.widgets.text('config', '', 'config')
Run Code Online (Sandbox Code Playgroud)
这是给我一个错误说
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'dbutils' is not defined
Run Code Online (Sandbox Code Playgroud)
那么,有什么方法可以通过包含 databricks 包(例如导入)在 pyspark 中运行它?
感谢您的帮助
val data= List("z", "f", "h")
sqlContext.sql("select name from table")
.when($"name".isin(data:_*),1)
.otherwise(0)
.show
Run Code Online (Sandbox Code Playgroud)
我该如何做相反的事情isin?我们有类似的东西isnotin吗?
我有一个日期列,它是数据帧中的字符串,采用 2017-01-01 12:15:43 时间戳格式。
现在我想使用 dataframe 而不是 Spark sql 从该列获取工作日编号(1 到 7)。
像下面这样
df.select(weekday(col("colname")))
Run Code Online (Sandbox Code Playgroud)
我在 python 和 sql 中找到了一个,但在 scala 中没有找到。有谁能帮我解决这个问题吗
在 sql 上下文中
sqlContext.sql("select date_format(to_date('2017-01-01'),'W') as week")
Run Code Online (Sandbox Code Playgroud) 在聚合分组期间,目前我正在取第一个值。但我需要 Visit_id 列的第一个非空值。Spark Scala 中是否有任何方法,请告诉我。
DF.groupBy("id").agg(lit(first(col("visit_id"))).alias("visit_id")
Run Code Online (Sandbox Code Playgroud)
提前致谢。