[ 
https://issues.apache.org/jira/browse/IGNITE-3084?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16305057#comment-16305057
 ] 

Nikolay Izhikov commented on IGNITE-3084:
-----------------------------------------

{quote}
I don't agree on OPTION_GRID. In catalog implementation you already have Ignite 
instance, so I don't see why would you need to get it by name again. There 
should be another solution.
And in general, implementation detail should not drive public API. OPTION_GRID 
is very confusing and I still think it should be removed, at least in this 
iteration.
{quote}

I made {{OPTION_GRID}} private in IgniteExternalCatalog so it not appear in 
public API.
Is it OK?

Please, see some details about spark relation resolving:

1. When spark execute SQL query it resolves catalog relation with 
{{FindDataSourceTable}}. Relation resolved with string options provided from 
Catalog:

https://github.com/apache/spark/blob/v2.2.0/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/DataSourceStrategy.scala#L230

2. DataSource constructs relation throw 
RelationProvider(IgniteRelationProvider) with these string options:

https://github.com/apache/spark/blob/v2.2.0/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/DataSource.scala#L306

So we have to pass some string ID from a catalog to IgniteRelationProvider to 
get existing Ignite instance.
As far as I can understand - Ignite.name is well for this purpose.
What have I missed?

Another option, that I can see - make some internal HashMap[String, Ignite] and 
use `UUID.randomUUID()` as Ignite identifier.
What do you think?


> Spark Data Frames Support in Apache Ignite
> ------------------------------------------
>
>                 Key: IGNITE-3084
>                 URL: https://issues.apache.org/jira/browse/IGNITE-3084
>             Project: Ignite
>          Issue Type: Task
>          Components: spark
>    Affects Versions: 1.5.0.final
>            Reporter: Vladimir Ozerov
>            Assignee: Nikolay Izhikov
>            Priority: Critical
>              Labels: bigdata, important
>             Fix For: 2.4
>
>
> Apache Spark already benefits from integration with Apache Ignite. The latter 
> provides shared RDDs, an implementation of Spark RDD, that help Spark to 
> share a state between Spark workers and execute SQL queries much faster. The 
> next logical step is to enable support for modern Spark Data Frames API in a 
> similar way.
> As a contributor, you will be fully in charge of the integration of Spark 
> Data Frame API and Apache Ignite.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to