sc.textFile("FILE PATH") //For reading text file
sc.wholeTextFiles("DIRECTORY PATH") //For reading whole text files in a directory
sqlContext.read.parquet("FILE PATH")
sqlContext.read.json("FILE PATH")
将您的逻辑应用于生成的rdd。 在流式传输的情况下,spark支持来自不同来源的数据,如 Kafka、flume、kinesis、twitter、zeromq、mqtt等。 spark也支持简单的套接字流, val lines=ssc.sockettextstream(“localhost”,9999) 更多 kafka是一个高吞吐量的分布式消息传递系统。kafka的分布式行为、可伸缩性和容错性比其他消息传递系统具有优势(mqtt、zmq等) 所以问题是在这些数据源中哪一个是你的?您可以用自己的数据源替换Kafka数据源。我们使用mqtt作为默认源。
3条答案
按热度按时间ao218c7q1#
为了使用spark处理数据,我们需要通过spark支持的不同数据源提供数据(或者我们需要编写自己的自定义数据源)
如果是静态数据,spark提供
将您的逻辑应用于生成的rdd。
在流式传输的情况下,spark支持来自不同来源的数据,如
Kafka、flume、kinesis、twitter、zeromq、mqtt等。
spark也支持简单的套接字流,
val lines=ssc.sockettextstream(“localhost”,9999)
更多
kafka是一个高吞吐量的分布式消息传递系统。kafka的分布式行为、可伸缩性和容错性比其他消息传递系统具有优势(mqtt、zmq等)
所以问题是在这些数据源中哪一个是你的?您可以用自己的数据源替换Kafka数据源。我们使用mqtt作为默认源。
nue99wik2#
其实这个问题有一个简单的解释。
spark流媒体和其他流媒体环境是为即时读取数据而设计的。在读取过程之后,他们没有太多的能力来保持数据的活力(有些人有,但效率不高)。顺便说一句,像kafka这样的消息代理需要在特定时间内保持数据的活动性。因此,其他工具可以通过使用使用者随时轻松地从messagebroker(kafka)获取数据。分工负责会给你带来有效的结果。
7uhlpewt3#
有人能给我解释一下为什么spark流媒体不能单独完成吗?
spark流媒体是为实时数据和数据需要从某处摄取。像Kafka,Flume,动觉,或tcp套接字。甚至可以从文件中读取数据。
https://spark.apache.org/docs/latest/streaming-programming-guide.html
如果您的用例足够简单,可以从文件中读取,那么我建议使用apachenifi。
https://www.youtube.com/watch?v=gqv_63a0abo&list=plzmb162wvzr05pe-lobqezkk0zxuzms56
换句话说,为什么Kafka在数据源和spark流媒体之间?
根据场景的不同,kafka通常是存储数据,然后从不同方面进行消费的合适选择。