发布
社区首页 >问答首页 >如何以逗号分隔的形式显示spark streaming作业的数据帧输出?

如何以逗号分隔的形式显示spark streaming作业的数据帧输出?
EN

Stack Overflow用户
提问于 2019-10-23 15:31:14
回答 1查看 166关注 0票数 0

我使用的是python,而不是scala。因此,我当前的输出是一个数据帧,如下所示:

代码语言:javascript
代码运行次数:0
复制
+--------+-----+
|     tag|count|
+--------+-----+
|Apple   | 1233|
+--------+-----+

我只想让它看起来像这样,在标准输出上:

代码语言:javascript
代码运行次数:0
复制
Apple, 1233

以下是返回以下内容的查询的代码:

代码语言:javascript
代码运行次数:0
复制
hashtags = allTags.select(explode(split(allTags['Hashtags'],",")).alias("tag")) 
hashTagCount = hashtags.groupBy("tag").count().orderBy(col("count").desc()).limit(1)
query = hashTagCount.writeStream.outputMode("complete").format("console").start()

我该如何继续实现这种格式的输出。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-10-23 17:17:15

我只是尝试使用str函数并打印输出。

代码语言:javascript
代码运行次数:0
复制
from pyspark.sql import Row
from pyspark.sql.functions import *
l = [('Ankit',25),('Jalfaizy',22),('Suresh',20),('Bala',26)]
rdd = sc.parallelize(l)
people = rdd.map(lambda x: Row(name=x[0], age=int(x[1])))
schemaPeople = spark.createDataFrame(people)

schemaPeople.show(10, False)

for row in schemaPeople.rdd.collect():
    text = str(row.name) + ", " + str(row.age)
    print(text)

输出:

代码语言:javascript
代码运行次数:0
复制
+---+--------+
|age|name    |
+---+--------+
|25 |Ankit   |
|22 |Jalfaizy|
|20 |Suresh  |
|26 |Bala    |
+---+--------+

Ankit, 25
Jalfaizy, 22
Suresh, 20
Bala, 26

如果您的要求不同,请务必让我知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58517681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档