Как настроить кеш для ignite-spark-dataframe? - PullRequest
0 голосов
/ 11 октября 2018

Мне удалось сохранить и загрузить фрейм данных 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 Ответ

0 голосов
/ 11 октября 2018

На странице документа, на которую вы ссылаетесь, содержится фрагмент кода, который создает таблицу 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 автоматически создает таблицу.

...