Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Azure DataBricks Stream foreach gagal dengan NotSerializableException

Spark Konteks tidak serial.

Setiap implementasi ForeachWriter harus serializable karena setiap tugas akan mendapatkan salinan serial-deserialized baru dari objek yang disediakan. Oleh karena itu, sangat disarankan agar setiap inisialisasi untuk menulis data (misalnya membuka koneksi atau memulai transaksi) dilakukan setelah metode open(...) dipanggil, yang menandakan bahwa tugas siap untuk menghasilkan data.

Dalam kode Anda, Anda mencoba menggunakan konteks percikan dalam metode proses,

override def process(record: Row) = {
    val stringHashRDD = sc.parallelize(Seq(("lastContact", record(1).toString)))
    *sc.toRedisHASH(stringHashRDD, record(0).toString)(redisConfig)*
  }

Untuk mengirim data ke redis, Anda perlu membuat koneksi Anda sendiri dan membukanya dalam metode terbuka, lalu menggunakannya dalam metode proses.

Lihatlah cara membuat kumpulan koneksi redis. 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. golang + redis masalah kinerja penjadwal konkurensi

  2. Bagaimana cara mengatur cluster elasticache redis sebagai budak?

  3. mengimplementasikan cache di luar proses menggunakan Redis di windows Azure

  4. Performa Redis vs Disk dalam aplikasi caching

  5. WRONGTYPE Operasi terhadap kunci yang memegang jenis nilai yang salah php