我正在尝试使用 apache spark 流。我有一个数据源,来自 HDFS 的 csv 文件。
我打算用 Spark Stream 做以下事情:
- 使用 textFileStream 定期(5 分钟)读取 CSV 文件
- 将 DStream 拆分为多个子 dstream。
下面是一个关于需求的简单例子。
我们得到了这种格式的 CSV 文件。
NAME, SCHOOL, GENDER, AGE, SUBJECT, SCORE
USR1, SCH001, male , 28 , MATH , 100
USR2, SCH002, male , 20 , MATH , 99
USR1, SCH001, male , 28 , ENGLISH, 80
USR8, SCHOO8, female, 20 , PHY , 100
每隔 5 分钟,我读取一个这样的文件,然后我想将这个 Input DStream 拆分成几个 subDStream。每个用户将是一个流。可能吗?
最佳答案
我的意见是,如果您有固定的间隔时间来收集数据,则不需要流媒体功能!当您不知道数据何时到达时,流式传输很有用。 但是,如果您的工作需要计算(实时)用户在一天/一小时/等时间内的(即)累计分数,那么流式传输就是您的解决方案。 问题是:您想要文件上的照片还是多个文件中的胶片?
在 2 个用例中按 USR 分组是不同的,在流式传输的情况下更复杂。您必须考虑对组和窗口/幻灯片参数进行的计算类型。我建议看this
关于apache-spark - 如何将 Spark DStream 拆分为多个子流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35980173/