将数据帧结果值保存到字符串变量?

oha*_*arr 5 python dataframe spark-dataframe pyspark-sql databricks

当找到我想将其保存到变量的最大日期时,我在 spark 中创建了一个数据框。只是想弄清楚如何获得结果,这是一个字符串,并将其保存到一个变量中。

到目前为止的代码:

sqlDF = spark.sql("SELECT MAX(date) FROM account")
sqlDF.show()
Run Code Online (Sandbox Code Playgroud)

结果是什么样的:

+--------------------+
| max(date)|
+--------------------+
|2018-04-19T14:11:...|
+--------------------+
Run Code Online (Sandbox Code Playgroud)

谢谢

Jos*_*sen 7

假设您正在计算全局聚合(其中输出将只有一行)并使用 PySpark,以下应该有效:

spark.sql("SELECT MAX(date) as maxDate FROM account").first()["maxDate"]
Run Code Online (Sandbox Code Playgroud)

我相信这会返回一个datetime对象,但您可以将其转换为驱动程序代码中的字符串,也可以SELECT CAST(MAX(DATE) as string)改为执行。


Hau*_*low 4

尝试这样的事情:

from pyspark.sql.functions import max as max_

# get last partition from all deltas
alldeltas=sqlContext.read.json (alldeltasdir)
last_delta=alldeltas.agg(max_("ingest_date")).collect()[0][0]
Run Code Online (Sandbox Code Playgroud)

last_delta 将为您提供一个值,在此示例中为数据帧中 ingest_date 列的最大值。