Не удается вставить записи в кеш Apache Ignite из Apache Spark RDD

Я пытаюсь выполнить простую вставку в кеш Ignite (версия 2.2) из ​​приложения Spark, используя приведенный ниже код (в scala):

val addresses=new util.ArrayList[String]()
addresses.add("127.0.0.1:48500..48520")

// IGNITE CONTEXT CONFIGURATIONS
 val igniteContext:IgniteContext=new IgniteContext(sc,()=>new IgniteConfiguration()
  .setDiscoverySpi(new TcpDiscoverySpi().
    setLocalPort(48511).setLocalPortRange(20).setIpFinder(new TcpDiscoveryVmIpFinder().setAddresses(addresses))),true)

// CHECKING IF Spark CACHE IS PRESENT
   println(igniteContext.ignite().cacheNames())
// RETURNS [Spark]

// FETCHING THE SPARK CACHE
val ignite_cache_rdd:IgniteRDD[String,Custom_Class] =igniteContext.fromCache[String,Custom_Class]("Spark")

  // SAVING PAIR_RDD TO CACHE
  ignite_cache_rdd.savePairs(ignite_PairRDD)

  //  PRINTING CONTENTS FROM CACHE
  ignite_cache_rdd.sql("select * from Custom_Class").show(truncate = false)
  //RETURNS AN EMPTY DATAFRAME

Содержимое поля значения ignite_PairRDD при преобразовании в Dataframe отображается без проблем:

+-+-+-+
A |B |C|  
--------
22|6 |7|
+-+-+-+

Проблема в том, что после использования «savePairs» и выполнения «show ()» кеш Ignite кажется пустым.

+-+-+-+
A |B |C|  
--------
  |  | |
+-+-+-+

Кэш "Spark" имеет следующие конфигурации (в java):

 CacheConfiguration cache_conf=new CacheConfiguration<String,Custom_Class>().setCacheMode(CacheMode.PARTITIONED).setAtomicityMode(CacheAtomicityMode.ATOMIC).setBackups(1).
            setIndexedTypes(String.class,Custom_Class.class).setName("Spark");

Custom_Class создается с использованием следующей структуры:

public class Equity_Data implements Serializable {
  @QuerySqlField(index = true)
  private A;

  @QuerySqlField(index = true)
  private B;

@QuerySqlField(index = true)
  private C;
}

Я обязательно проверил, существует ли кеш, и SQL-запрос кажется правильным, потому что я не получаю никаких ошибок, только пустой фрейм данных.

Мне нужно изменить какую-то конфигурацию? Спасибо.

Не могли бы вы поделиться примером, который можно запустить локально?

Michael 16.03.2018 12:57

Я бы предложил создать небольшой проект репродуктора и отправить его в список рассылки пользователей Apache Ignite: ignite.apache.org/community/resources.html#mail-lists

Dmitriy 20.03.2018 04:26
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
178
0

Другие вопросы по теме