Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

Azure DataBricks Stream foreach NotSerializableException के साथ विफल रहता है

स्पार्क प्रसंग क्रमबद्ध नहीं है।

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




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Django अजवाइन को कार्य गणना मिलती है

  2. रेडिस से डेटा मैप करने का कुशल तरीका

  3. Socket.io में RedisStore का उपयोग करने के उदाहरण

  4. रेडिस के साथ गतिशील सॉर्ट

  5. SQLite से Redis में पोर्ट करना