स्पार्क प्रसंग क्रमबद्ध नहीं है।
ForeachWriter का कोई भी कार्यान्वयन क्रमबद्ध होना चाहिए क्योंकि प्रत्येक कार्य को प्रदान की गई वस्तु की एक नई क्रमबद्ध-deserialized प्रति प्राप्त होगी। इसलिए, यह दृढ़ता से अनुशंसा की जाती है कि डेटा लिखने के लिए कोई भी आरंभीकरण (जैसे कनेक्शन खोलना या लेनदेन शुरू करना) ओपन (...) विधि को कॉल करने के बाद किया जाता है, जो दर्शाता है कि कार्य डेटा उत्पन्न करने के लिए तैयार है।उन्हें>
अपने कोड में, आप प्रक्रिया विधि के भीतर स्पार्क संदर्भ का उपयोग करने का प्रयास कर रहे हैं,
override def process(record: Row) = {
val stringHashRDD = sc.parallelize(Seq(("lastContact", record(1).toString)))
*sc.toRedisHASH(stringHashRDD, record(0).toString)(redisConfig)*
}
रेडिस को डेटा भेजने के लिए, आपको अपना खुद का कनेक्शन बनाना होगा और इसे ओपन मेथड में खोलना होगा और फिर प्रोसेस मेथड में इसका इस्तेमाल करना होगा।
रेडिस कनेक्शन पूल बनाने का तरीका देखें। https://github.com/RedisLabs/spark-redis/blob/master/src/main/scala/com/redislabs/provider/redis/ConnectionPool.scala