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

Saving a dataframe result value to a string variable?

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

到目前为止的代码:

sqlDF = spark.sql("SELECT MAX(date) FROM account")
sqlDF.show()

结果是什么样的:

+--------------------+
| max(date)|
+--------------------+
|2018-04-19T14:11:...|
+--------------------+

谢谢

假设 sqlDF 是一个 pandas 数据帧并且您要获取的值位于索引 0:

max_date = str(sqlDF.get_value(0, 'max(date)'))

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

spark.sql("SELECT MAX(date) as maxDate FROM account").first()["maxDate"]

我相信这将 return 成为一个 datetime 对象,但您可以在驱动程序代码中将其转换为字符串或执行 SELECT CAST(MAX(DATE) as string)

尝试这样的事情:

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]

last_delta 会给你一个值,在此示例中,数据帧中列 ingest_date 的最大值。