On Mon, Aug 26, 2024 at 1:59 PM Rejeb Ben Rejeb <benrejebre...@gmail.com>
wrote:

> Hi,
>
> REMOVE DATASOURCE V1:
> After removing V1 code, it is possible to configure V1 name as a V2 long
> name.
> I have to test it to be sure but this can be done by moving the
> class PhoenixDataSource under package "org.apache.phoenix.spark".
> In this way, it will have no impact on old applications which use the spark
> API.
>
Would creating a compatibility child of the driver under the old package
name work ?
I don't like the idea of moving the up-to-date code to a new package.


> When I wrote my first message I forget that there is also helper methods
> like "phoenixTableAsDataFrame" or "saveToPhoenix", for those we have two
> options:
>
>    1. Assume that these methods are no longer maintained, document to use
>    spark API instead and remove them.
>    2. Keep methods and change method implementation to point to the V2
>    datasource (all options of V1 are available with V2).
>
> Personally, I prefer option 1 as for old scala or java applications they
> need code and dependencies update to use a newest version of connector
> anyway. Python or R applications will not be impacted as they use Spark
> API.
>
While I agree with you from a technical POV, the reality is that there are
a lot of legacy spark jobs that I'd prefer not to break.
Option 2 sounds better to me.


> BUILD ARTIFACTS WITH DIFFERENT SCALA VERSIONS:
> Yes, since the connector for spark 2 was compiled with scala 2.11 it can't
> be run with spark 2 compiled with scala 2.12. Same applies for the spark 3
> connector with scala 2.12 vs 2.13.
> I meant to have this for later releases, IMHO, actually this is a
> limitation and it will be good to have the connector built with both scala
> versions so usage will not be restricted to only one version of the spark
> build.
> I've done some quick research, it seems that there is a way to manage this
> with the scala-maven-plugin throw multiple executions instead of using
> maven profiles.
>
> That sounds fine, please open a ticket, and a PR with your preferred
solution.


> Rejeb
>
>
> Le lun. 26 août 2024 à 08:49, Istvan Toth <st...@apache.org> a écrit :
>
> > Hi,
> >
> > Forgive my ignorance of Spark:
> >
> > REMOVE DATASOURCE V1:
> >
> > IIRC the V1 and V2 datasources have different names.
> > Wouldn't this break applications using the old V1 name ?
> > Is there a chance that this would break old applications ?
> >
> > BUILD ARTIFACTS WITH DIFFERENT SCALA VERSIONS:
> >
> > Is this required because scala 2.x runtimes are not backwards compatible
> ?
> > I don't see a problem with that.
> >
> > Its utility is limited until we start providing actual releases and
> publish
> > binary artifacts, but
> > in theory I agree.
> >
> > The implementation would be a bit tricky, the solution that comes to my
> > mind is generating the artifacts
> > in multiple maven runs with different profiles, like we do for the
> > different HBase profiles now.
> >
> > Istvan
> >
> > On Fri, Aug 23, 2024 at 7:36 PM Rejeb Ben Rejeb <benrejebre...@gmail.com
> >
> > wrote:
> >
> > > Hi,
> > >
> > > I would like to start a discussion about two changes to the
> > phoenix5-spark
> > > and phoenix5-spark3.
> > >
> > > REMOVE DATASOURCE V1
> > > It is not longer necessarie to keep Datasource V1 classes, since all
> > > features are implemented in new connector version classes. T
> > > When fixing the issue PHOENIX-6783, I checked for impacts and done some
> > > modifications to make removing the classes safe and without impacts.
> > >
> > > BUILD ARTIFACTS WITH DIFFERENT SCALA VERSIONS
> > > phoenix5-spark2 connector uses spark-2.4.8 wich is available with scala
> > > 2.11 and scala 2.12.
> > > Same for phoenix5-spark3 uses spark-3.2.4 wich is available with scala
> > 2.12
> > > and scala 2.13.
> > >
> > > It would be nice to have connector supporting both scala version like
> > other
> > > connectors for exemple mongoDB or cassandra.
> > >
> > > Thanks,
> > > Rejeb
> > >
> >
>
>
> --
> Cordialement,
> Rejeb Ben Rejeb
>


-- 
*István Tóth* | Sr. Staff Software Engineer
*Email*: st...@cloudera.com
cloudera.com <https://www.cloudera.com>
[image: Cloudera] <https://www.cloudera.com/>
[image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
Cloudera on Facebook] <https://www.facebook.com/cloudera> [image: Cloudera
on LinkedIn] <https://www.linkedin.com/company/cloudera>
------------------------------
------------------------------

Reply via email to