我正在尝试使用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/

10-13 00:04