首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从writeStream读取到json文件,但在HDFS json文件中只找到一条消息。

从writeStream读取到json文件,但在HDFS json文件中只找到一条消息。
EN

Stack Overflow用户
提问于 2022-08-27 03:57:49
回答 1查看 17关注 0票数 0

只需设置一个hadoop/kafka/星火,一个节点演示环境。在pyspark中,我尝试读取(.readStream) Kafka消息,并在hadoop中将它写入(.writeStream)到json文件。奇怪的是,在hadoop "output/test“目录下,我可以找到一个创建的json文件,但只有一个消息。卡夫卡的所有新消息都不会更新json文件。但是我想把卡夫卡的所有信息都存储在一个json文件中。

我尝试过控制台(writeStream.format(“控制台”)或kafak(writeStream.format("kafka"))的接收器类型,它正常工作。有什么建议或意见吗?下面是示例代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
schema = StructType([StructField("stock_name",StringType(),True),
                     StructField("stock_value", DoubleType(), True),
                     StructField("timestamp", LongType(), True)])

line = spark \
  .readStream \
  .format("kafka") \
  .option("kafka.bootstrap.servers", "127.0.1.1:9092") \
  .option("subscribe", "fakestock") \
  .option("startingOffsets","earliest")\
  .load()\
  .selectExpr("CAST(value AS STRING)")
   
df=line.select(functions.from_json(functions.col("value")\
  .cast("string"),schema).alias("parse_value"))\
  .select("parse_value.stock_name","parse_value.stock_value","parse_value.timestamp")
query=df.writeStream\
  .format("json")\
  .option("checkpointLocation", "output/checkpoint")\
  .option("path","output/test")\
  .start()
EN

回答 1

Stack Overflow用户

发布于 2022-08-28 04:30:51

不可能将所有记录存储在一个文件中。Spark会定期以Kafka用户的身份对批量数据进行投票,然后将这些批数据写入唯一的文件。

在不知道主题中有多少记录的情况下,很难确定输出路径中应该有多少条记录,但是您的代码看起来还行。然而,与JSON相比,Parquet更多地推荐输出格式。

还值得一提的是,Kafka有一个HDFS插件,它只需要编写一个配置文件,不需要火花解析代码。

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

https://stackoverflow.com/questions/73510798

复制
相关文章
Python将字符串转换为列表
We can convert a string to list in Python using split() function.
全栈程序员站长
2022/09/06
6K0
python--练习--将字符串转成列表
a="alex" lic=[] for i in range(len(a)): lic.append(a[i]) print(lic)
py3study
2020/01/15
1.4K0
3-序列、列表、元组
序列就是一堆数据元素的集合,并对每个元素进行编号。在Python中,字符串、列表、元组都属于序列,他们都具有一些特定的操作,如索引、切片、相加、相乘、in、长度、最大值和最小值。
用户3106371
2018/09/12
7610
python split()函数使用拆分字符串 将字符串转化为列表
函数:split() Python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list) os.path.split():按照路径将文件名和路径分割开 一、函数说明 1、split()函数 语法:str.split(str="",num=string.count(str))[n] 参数说明: str:   表示为分隔符,默认为空格,但是不能为空('')。若字符串中没有分隔符,则把整个字
程序员同行者
2018/06/22
6.2K0
python 字符串转列表,列表转字符串
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144126.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
1.2K0
python 字符串转列表,列表转字符串
Python字符串,列表
字符串: 字符串的创建: 单引号, 双引号 ,三引号 <注意: 转义字符的使用> 字符串的特殊性: 索引 切片 连接 重复 成员操作符(in, not in)
py3study
2020/01/14
9790
Python将一个数逆序列放入列表中
小小科
2020/06/15
1.2K0
python字符串转化列表_Python列表到字符串的转换[通俗易懂]
Sometimes we want to convert the list to a string so that we can print it or log it for debugging purposes. In this tutorial, we will learn how to convert a list to string in a Python program.
全栈程序员站长
2022/08/25
2.7K0
python学习3-内置数据结构1-列表
lst = list(range(1,20))    #使用list把可迭代对象转换为列表
py3study
2020/01/10
1.1K0
for循环将字典添加到列表中出现覆盖前面数据的问题
我们可以看到上面的代码,我们通过for循环输入了3次不同的用户名和密码,并且添加到 user_list 的列表中,但是最终 user_list 打印了三次相同的数据
全栈程序员站长
2022/06/29
4.5K0
Python:将列表转为字符串的3种方法「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141887.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/25
1.5K0
python的数与字符串
在python中我们现在有不同的版本现在有python2.7与python与3.0 要说他们的区别就在与输出的不同
py3study
2020/01/17
5150
将Sublime添加到鼠标右键
2、找到 HKEY_CLASSES_ROOT/*/shell 目录,在此目录下操作。
新码农
2020/03/05
3K0
用Python将一个列表分割成小列表
方法一 def list_of_groups(init_list, childern_list_len): ''' init_list为初始化的列表,childern_list_len初始化列表中的几个数据组成一个小列表 :param init_list: :param childern_list_len: :return: ''' list_of_group = zip(*(iter(init_list),) *childern_list_len)
py3study
2020/01/06
3.2K0
python: 将列表中的字符串 连接成一个 长路径
  今天实习公司分配了一个数据处理的任务。在将列表中的字符串连接成一个长路径时,我遇到了如下问题:
JNingWei
2018/09/28
2.9K0
Python 列表元素字符串转浮点
在网络爬虫或者读取文件中的数据时,很多时候读取出来的数值是字符串形式的,这些字符串形式的数据并不能用来作计算或者更深入的操作,因此我们需要把他们转换为数值的形式。
全栈程序员站长
2022/09/05
2.1K0
python3-列表与字符串
print(x) x3=tuple(x) print(x3) [1, 2, 5, 4, 3, 10, 20, [1, 2]] (1, 2, 5, 4, 3, 10, 20, [1, 2])
py3study
2020/01/06
6520
将Windows Terminal添加到鼠标右键
导读 非常实用的小技巧。 下载Windows Terminal图标,右键另存为。 [WindowsTerminal图标] 保存至'C:\Users\Administrator\AppData\Local\Terminal\Terminal.ico'。 win+R输入'regedit',打开注册表。 找到'HKEY_CLASSES_ROOT\Directory\Background\shell'目录,在此目录下操作。 新建项'wt',双击右边'默认',更改右键文字显示内容'Windows Terminal H
新码农
2020/08/05
3.6K0
将Windows Terminal添加到鼠标右键
Python将字符串转为字典
在工作中我们经常会遇到数据类型之间的互转的问题,而通常我们请求一些API借口返回的结果就是字符串,但是格式是Json的,在Python中转为字典是最易处理的,所以这里记录一下在Python下把字符串转为字典的三种方法。
后场技术
2020/09/03
4.4K0
Python将字符串转为字典
Python 生成随机数_python 随机字符串
python中生成随机数主要使用random模块和numpy库中的random函数。
全栈程序员站长
2022/11/10
1.6K0

相似问题

Python 3-如何将字符串转换为字典列表

11

Python 3-从列表到精确字符串(如列表)

10

将字符串添加到Python列表

10

Python -如何将随机数添加到列表中?

30

Python 3-基于字符串的字典搜索列表

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文