ਸਪਾਰਕ ਸਟ੍ਰੀਮਿੰਗ ਡੇਟਾ ਸਫਾਈ ਵਿਧੀ
(I) ਡੀਸਟ੍ਰੀਮ ਅਤੇ ਆਰਡੀਡੀ
ਜਿਵੇਂ ਕਿ ਅਸੀਂ ਜਾਣਦੇ ਹਾਂ, ਸਪਾਰਕ ਸਟ੍ਰੀਮਿੰਗ ਗਣਨਾ ਸਪਾਰਕ ਕੋਰ 'ਤੇ ਅਧਾਰਤ ਹੈ, ਅਤੇ ਸਪਾਰਕ ਕੋਰ ਦਾ ਕੋਰ RDD ਹੈ, ਇਸ ਲਈ ਸਪਾਰਕ ਸਟ੍ਰੀਮਿੰਗ ਨੂੰ ਵੀ RDD ਨਾਲ ਸੰਬੰਧਿਤ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਸਪਾਰਕ ਸਟ੍ਰੀਮਿੰਗ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਸਿੱਧੇ RDD ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰਨ ਦਿੰਦੀ, ਪਰ DStream ਸੰਕਲਪਾਂ ਦੇ ਇੱਕ ਸਮੂਹ ਨੂੰ ਸੰਖੇਪ ਕਰਦੀ ਹੈ, DStream ਅਤੇ RDD ਸੰਮਲਿਤ ਸਬੰਧ ਹਨ, ਤੁਸੀਂ ਇਸਨੂੰ ਜਾਵਾ ਵਿੱਚ ਸਜਾਵਟ ਪੈਟਰਨ ਵਜੋਂ ਸਮਝ ਸਕਦੇ ਹੋ, ਯਾਨੀ ਕਿ, DStream RDD ਦਾ ਇੱਕ ਵਾਧਾ ਹੈ, ਪਰ ਵਿਵਹਾਰ RDD ਦੇ ਸਮਾਨ ਹੈ।
DStream ਅਤੇ RDD ਦੋਵਾਂ ਦੀਆਂ ਕਈ ਸ਼ਰਤਾਂ ਹਨ।
(1) ਵਿੱਚ ਸਮਾਨ ਪਰਿਵਰਤਨ ਕਿਰਿਆਵਾਂ ਹਨ, ਜਿਵੇਂ ਕਿ map, reduceByKey, ਆਦਿ, ਪਰ ਕੁਝ ਵਿਲੱਖਣ ਵੀ ਹਨ, ਜਿਵੇਂ ਕਿ Window, mapWithStated, ਆਦਿ।
(2) ਸਾਰਿਆਂ ਕੋਲ ਐਕਸ਼ਨ ਐਕਸ਼ਨ ਹਨ, ਜਿਵੇਂ ਕਿ foreachRDD, count, ਆਦਿ।
ਪ੍ਰੋਗਰਾਮਿੰਗ ਮਾਡਲ ਇਕਸਾਰ ਹੈ।
(ਅ) ਸਪਾਰਕ ਸਟ੍ਰੀਮਿੰਗ ਵਿੱਚ ਡੀਸਟ੍ਰੀਮ ਦੀ ਜਾਣ-ਪਛਾਣ
DStream ਵਿੱਚ ਕਈ ਕਲਾਸਾਂ ਹਨ।
(1) ਡੇਟਾ ਸਰੋਤ ਕਲਾਸਾਂ, ਜਿਵੇਂ ਕਿ ਇਨਪੁਟਡੀਸਟ੍ਰੀਮ, ਖਾਸ ਤੌਰ 'ਤੇ ਡਾਇਰੈਕਟਕਾਫਕਾਇਨਪੁੱਟਸਟ੍ਰੀਮ, ਆਦਿ।
(2) ਪਰਿਵਰਤਨ ਕਲਾਸਾਂ, ਆਮ ਤੌਰ 'ਤੇ ਮੈਪਡਡੀਸਟ੍ਰੀਮ, ਸ਼ਫਲਡਡੀਸਟ੍ਰੀਮ
(3) ਆਉਟਪੁੱਟ ਕਲਾਸਾਂ, ਆਮ ਤੌਰ 'ਤੇ ਜਿਵੇਂ ਕਿ ForEachDStream
ਉਪਰੋਕਤ ਤੋਂ, ਸ਼ੁਰੂਆਤ (ਇਨਪੁਟ) ਤੋਂ ਅੰਤ (ਆਉਟਪੁੱਟ) ਤੱਕ ਦਾ ਡੇਟਾ DStream ਸਿਸਟਮ ਦੁਆਰਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਆਮ ਤੌਰ 'ਤੇ ਸਿੱਧੇ ਤੌਰ 'ਤੇ RDDs ਤਿਆਰ ਅਤੇ ਹੇਰਾਫੇਰੀ ਨਹੀਂ ਕਰ ਸਕਦਾ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ DStream ਕੋਲ RDDs ਦੇ ਜੀਵਨ ਚੱਕਰ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਹੋਣ ਦਾ ਮੌਕਾ ਅਤੇ ਜ਼ਿੰਮੇਵਾਰੀ ਹੈ।
ਦੂਜੇ ਸ਼ਬਦਾਂ ਵਿੱਚ, ਸਪਾਰਕ ਸਟ੍ਰੀਮਿੰਗ ਵਿੱਚ ਇੱਕ ਹੈਆਟੋਮੈਟਿਕ ਸਫਾਈਫੰਕਸ਼ਨ।
(iii) ਸਪਾਰਕ ਸਟ੍ਰੀਮਿੰਗ ਵਿੱਚ RDD ਜਨਰੇਸ਼ਨ ਦੀ ਪ੍ਰਕਿਰਿਆ
ਸਪਾਰਕ ਸਟ੍ਰੀਮਿੰਗ ਵਿੱਚ RDDs ਦਾ ਜੀਵਨ ਪ੍ਰਵਾਹ ਇਸ ਪ੍ਰਕਾਰ ਹੈ।
(1) InputDStream ਵਿੱਚ, ਪ੍ਰਾਪਤ ਡੇਟਾ ਨੂੰ RDD ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ DirectKafkaInputStream, ਜੋ KafkaRDD ਤਿਆਰ ਕਰਦਾ ਹੈ।
(2) ਫਿਰ MappedDStream ਅਤੇ ਹੋਰ ਡੇਟਾ ਪਰਿਵਰਤਨ ਰਾਹੀਂ, ਇਸ ਸਮੇਂ ਨੂੰ ਸਿੱਧੇ ਤੌਰ 'ਤੇ RDD ਕਿਹਾ ਜਾਂਦਾ ਹੈ ਜੋ ਪਰਿਵਰਤਨ ਲਈ ਨਕਸ਼ੇ ਵਿਧੀ ਨਾਲ ਸੰਬੰਧਿਤ ਹੈ।
(3) ਆਉਟਪੁੱਟ ਕਲਾਸ ਓਪਰੇਸ਼ਨ ਵਿੱਚ, ਸਿਰਫ਼ ਜਦੋਂ RDD ਸਾਹਮਣੇ ਆਉਂਦਾ ਹੈ, ਤੁਸੀਂ ਉਪਭੋਗਤਾ ਨੂੰ ਸੰਬੰਧਿਤ ਸਟੋਰੇਜ, ਹੋਰ ਗਣਨਾਵਾਂ ਅਤੇ ਹੋਰ ਓਪਰੇਸ਼ਨ ਕਰਨ ਦੇ ਸਕਦੇ ਹੋ।