在pyspark中,运行:
sdf = sqlContext.sql("""SELECT * FROM t1 JOIN t2 on t1.c1 = t2.c1 """)
进而:
sdf.explain(extended=True)
它打印查询执行的逻辑和物理计划。
我的问题是:如何在变量中捕获输出,而不是打印它?
v = sdf.explain(extended=True) 自然,不起作用
我需要将df.show()的输出保存为字符串,以便我可以直接通过电子邮件发送.
例如,下面的例子来自官方的火花文档,:
val df = spark.read.json("examples/src/main/resources/people.json")
// Displays the content of the DataFrame to stdout
df.show()
// +----+-------+
// | age| name|
// +----+-------+
// |null|Michael|
// | 30| Andy|
// | 19| Justin|
// +----+-------+
Run Code Online (Sandbox Code Playgroud)
我需要将上表保存为在控制台中打印的字符串.我确实看了log4j来打印日志,但是没有关于仅记录输出的任何信息.
有人可以帮我吗?
我正在使用该printSchema函数来推断 Json 文件的架构。我想将此函数调用的结果保存在一个变量中,以便逐行解析它,以便我可以提取模式结构并将其转换为 DDL 模式,以便在 hive 中创建表。
如何才能做到这一点?