Как настроить кеш для ignite-spark-dataframe?

Мне удалось сохранить и загрузить фрейм данных spark из ignite на следующем примере: https://apacheignite-fs.readme.io/docs/ignite-data-frame

Следуя примеру кода, когда кеш создается в ignite, он автоматически получает имя типа "SQL_PUBLIC_name_of_table_in_spark".

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

<bean class="org.apache.ignite.configuration.IgniteConfiguration">
    <property name="cacheConfiguration">
        <bean class="org.apache.ignite.configuration.CacheConfiguration">
            <!-- Set a cache name. -->
            <property name="name" value="SQL_PUBLIC_name_of_table_in_spark"/>
            <!-- Set cache mode. -->
            <property name="cacheMode" value="PARTITIONED"/>
        </bean>
    </property>
</bean>

Тогда один из них будет отклонен из-за того, что "кеш уже существует". В результате я не смог изменить конфигурацию кеша с помощью xml/code.

Это ожидается? И как я могу изменить конфигурацию кеша в этом случае?

1 ответ

Страница документа, на которую вы ссылаетесь, содержит фрагмент кода, который создает таблицу SQL:

CREATE TABLE person ( 
    id LONG,  
    name VARCHAR,  
    city_id LONG,  
    PRIMARY KEY (id, city_id) 
) WITH "backups=1, affinityKey=city_id”;

Эта команда SQL на самом деле создает кеш. Вы можете изменить эту команду, чтобы изменить параметры кеша, который будет создан. Обратитесь к CREATE TABLE док.

В частности, параметр, который дает наибольшую гибкость, WITH template=mytemplate, Это позволяет вам создавать кеш из уже существующей конфигурации шаблона. Для регистрации шаблона вы можете указать его в своем cacheConfiguration с именем, заканчивающимся звездочкой, например

<bean class="org.apache.ignite.configuration.IgniteConfiguration">
    <property name="cacheConfiguration">
        <bean class="org.apache.ignite.configuration.CacheConfiguration">
            <property name="name" value="mytemplate*"/>
            <!-- your parameters. -->
        </bean>
    </property>
</bean>

Вы также можете указать WITH параметры для CREATE TABLE в OPTION_CREATE_TABLE_PARAMETERS установка, если таблица создается автоматически Spark.

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