将DataFrame show()的结果保存到pysp中的字符串

2024-04-26 13:19:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在pyspark中捕获show的结果,类似于here和{a2}。我无法用pyspark找到解决方案,只有scala。在

df.show()
#+----+-------+
#| age|   name|
#+----+-------+
#|null|Michael|
#|  30|   Andy|
#|  19| Justin|
#+----+-------+

最终目的是将其作为字符串捕获到mylogger.info 我尝试了logger.info(df.show()),它只会显示在控制台上。在


Tags: name目的infoa2dfagehereshow
1条回答
网友
1楼 · 发布于 2024-04-26 13:19:59

您可以使用与post You linkedCapturing the result of explain() in pyspark中所示相同的方法来构建helper函数。只需检查source code for ^{}并观察它正在调用self._jdf.showString()。在

答案取决于您使用的spark版本,因为show()的参数数量随着时间的推移而改变。在

Spark 2.3及以上版本

在版本2.3中,添加了vertical参数。在

def getShowString(df, n=20, truncate=True, vertical=False):
    if isinstance(truncate, bool) and truncate:
        return(df._jdf.showString(n, 20, vertical))
    else:
        return(df._jdf.showString(n, int(truncate), vertical))

Spark 1.5至2.2版

从版本1.5开始,添加了truncate参数。在

^{pr2}$

Spark 1.3至1.4版

{cd6}是在第一个版本中引入的。在

def getShowString(df, n=20):
    return(df._jdf.showString(n))

现在使用helper函数如下:

x = getShowString(df)  # default arguments
print(x)
#+  +   -+
#| age|   name|
#+  +   -+
#|null|Michael|
#|  30|   Andy|
#|  19| Justin|
#+  +   -+

或者在你的情况下:

logger.info(getShowString(df))

相关问题 更多 >