gpt4 book ai didi

python - 将 DataFrame show() 的结果保存到 pyspark 中的字符串

转载 作者:太空狗 更新时间:2023-10-30 02:51:30 26 4
gpt4 key购买 nike

我想在 pyspark 中捕获 show 的结果,类似于 herehere .我找不到 pyspark 的解决方案,只能找到 scala。

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

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

最佳答案

您可以使用与您链接的帖子中所示相同的方法构建辅助函数 Capturing the result of explain() in pyspark .只需检查 source code for show()并观察它正在调用 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 参数。

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

Spark 版本 1.3 到 1.4

show 函数是在 1.3 版本中首次引入的。

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

现在使用辅助函数如下:

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

或者在你的情况下:

logger.info(getShowString(df))

关于python - 将 DataFrame show() 的结果保存到 pyspark 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55653609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com