我正在尝试使用Apache Spark Stream。我有一个数据源,即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。每个用户将是一个流。可能吗?
最佳答案
我认为,如果您有固定的间隔时间来收集数据,则不需要流功能!当您不知道数据何时到达时,流式传输很有用。
但是,如果您的工作需要是用户在一天/小时/等时间内对(即)累积分数的计算(实时),那么流媒体就是您的解决方案。
问题是:您要在文件中拍摄照片还是在多个文件中拍摄电影?
在两种用例中,USR的分组是不同的,如果流式传输更为复杂。您必须考虑group和windowing / slides参数的计算类型。我建议看this
关于apache-spark - 如何将Spark DStream拆分为多个子流,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35980173/