当前位置: 首页 > 面试题库 >

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

司马念
2023-03-14
问题内容

我想在pyspark中捕获 show
的结果,类似于此处和此处。我无法使用pyspark找到解决方案,只能使用scala。

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

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


问题答案:

您可以使用链接捕获pyspark中的explain()的结果中所示的相同方法来构建辅助函数。只需检查源代码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))


 类似资料:
  • 问题内容: 我使用getJSON从我的网站请求JSON。效果很好,但是我需要将输出保存到另一个变量中,如下所示: 我需要将结果保存到其中,但似乎此语法不正确。有任何想法吗? 问题答案: 仅在响应后才能调用,无法获得价值。

  • 问题内容: 上面的语句将生成以下警报: 消息6819,级别16,状态3,第2 行在ASSIGNMENT语句中不允许使用FOR XML子句。 问题答案: 例如 请参阅:http : //blogs.msdn.com/sqlprogrammability/articles/576095.aspx

  • 我正在使用PHP执行一个带有西班牙语、英语和日语字符的MySQL更新语句。 但我无法将日语字符保存到数据库中。我应该如何进行? 数据库具有utf8\u常规\u ci排序规则。 使用我可以将撇号保存到数据库中。 使用我可以将西班牙语字符保存到数据库中。

  • 问题内容: 我想捕获到字符串的输出。 PHP文档说: 与将结果直接输出到浏览器的任何东西一样,输出控制功能可用于捕获此功能的输出,并将其保存在字符串中(例如)。 这可能如何工作的一个例子是什么? 这是不可能的,因为它不会给我所需的信息。 问题答案: 使用输出缓冲:

  • 我使用下一个文件名路径将“Simple Data Writer”添加到我的测试计划中: 当我从UI而不是命令行运行脚本时,它可以完美地工作(脚本不会创建文件夹,并将结果保存到错误命名的文件中)。 任何想法如何使用简单数据编写器创建名称中具有日期的文件夹,以.jtl文件的名称创建时间? 我用的是windows 10。 谢谢你

  • 这是im可以使用Python3通过API访问的数据预览。 我能够使用json.dumps(variablename)将其转储并使其成为一个json对象,但如何将其保存为一个json文件呢?