Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何将flink和spark一起使用,spark只是为了转换?_Apache Spark_Spark Streaming_Apache Flink - Fatal编程技术网

Apache spark 如何将flink和spark一起使用,spark只是为了转换?

Apache spark 如何将flink和spark一起使用,spark只是为了转换?,apache-spark,spark-streaming,apache-flink,Apache Spark,Spark Streaming,Apache Flink,假设mongodb中有这样一个集合“货物”: {name:"A",attr:["location":"us"],"eventTime":"2018-01-01"} {name:"B",attr:["brand":"nike"],"eventTime":"2018-01-01"} 过去,我使用spark将其展平并保存到蜂巢: goodsDF.select($"name",explode($"attribute")) 但是,现在我们需要处理增量数据, 例如,第二天第三行有一个新的商品 {name

假设mongodb中有这样一个集合“货物”:

{name:"A",attr:["location":"us"],"eventTime":"2018-01-01"}
{name:"B",attr:["brand":"nike"],"eventTime":"2018-01-01"}
过去,我使用spark将其展平并保存到蜂巢:

goodsDF.select($"name",explode($"attribute"))
但是,现在我们需要处理增量数据, 例如,第二天第三行有一个新的商品

{name:"A",attr:["location":"us"],"eventTime":"2018-01-01"}
{name:"B",attr:["brand":"nike"],"eventTime":"2018-01-01"}
{name:"C",attr:["location":"uk"],"eventTime":"2018-02-01"}

我们的一些团队认为flink在流媒体方面更好,因为flink有事件驱动程序应用程序、流媒体管道和批处理,而spark只是一个微批处理

所以我们改为使用flink,但是spark已经编写了很多代码,例如上面的“爆炸”,所以我的问题是: 是否有可能使用FLink获取源并保存到接收器,但在中间,使用SCAPLE来转换数据集?


如果不可能,那么把它保存到一个临时接收器,比如说一些json文件,然后spark读取这些文件,转换并保存到hive。但是我担心这没有意义,因为对于spark来说,它也是增量数据。使用flink然后使用spark与直接使用spark结构化流媒体相同。

否。如果不更改代码,则不能在flink中使用Apache spark代码。因为这两个是由两个提供的不同的处理框架和API,其语法也不同。框架的选择应该真正由用例驱动,而不是像Flink优于Spark这样的泛型语句。框架可能对您的用例非常有用,但在其他用例中可能表现不佳。顺便说一句,Spark不仅仅是微批量的。它有批处理、流式处理、图形、ML和其他功能。因为完整的用例没有被提及,所以很难建议哪一个更适合这个场景。但是,如果您的用例能够承受亚秒的延迟,那么我就不会浪费时间迁移到另一个框架


另外,如果事情是动态的,并且预计处理框架将来可能会发生变化,那么最好使用ApacheBeam之类的东西,它提供了对大多数处理引擎的抽象。使用ApacheBeamProcessingAPI将为您提供随时更改底层处理引擎的灵活性。下面是阅读更多关于beam-的链接

“因为flink有事件驱动程序应用程序、流媒体管道和批处理,但spark只是一个微批处理”我认为这是一个模糊的理由say@mangusta重点是增量数据,我们的团队负责人说flink更适合,但我不确定,也不熟悉them@nod-请继续读这个-。这将帮助所有人更好地帮助你。@Montypyton抱歉,我真的不明白,是因为我在一页中问了太多问题,比如:flink更好吗?以及如何同时使用spark和flink?还是我没有清楚地表达出来?谢谢。我完整的用例只是增量数据:在我的问题中,您可以看到,我们在2018-01-01有两种商品,分别称为A和B,每过一个月(可能每周),我们从网络上抓取更多数据,因此我们在2018-02-01获得商品“C”。然后我们需要将新商品“C”从mongodb转换到hive。我们可以承受一小时的延迟。我猜flnk的事件驱动程序是由mongodb中的触发器驱动的,所以mongodb将数据推送到flink。我是新手。