Re: Apache Spark 2.4.8 (and EOL of 2.4)

2021-03-09 Thread Dongjoon Hyun
Thank you for the update.

+1 for your plan.

Bests,
Dongjoon.

On Tue, Mar 9, 2021 at 12:46 PM Liang-Chi Hsieh  wrote:

> I just contacted Shane and seems there is ongoing github fetches timing out
> issue on Jenkins.
>
> That being said, currently the QA test is unavailable. I guess it is unsafe
> to make a release cut due to lack of reliable QA test result.
>
> I may defer the cut until QA test comes back if no objection.
>
> WDYT?
>
>
>
> --
> Sent from: http://apache-spark-developers-list.1001551.n3.nabble.com/
>
> -
> To unsubscribe e-mail: dev-unsubscr...@spark.apache.org
>
>


[no subject]

2021-03-09 Thread Anton Solod
Unsubscribe


Re: Apache Spark 2.4.8 (and EOL of 2.4)

2021-03-09 Thread Liang-Chi Hsieh
I just contacted Shane and seems there is ongoing github fetches timing out
issue on Jenkins.

That being said, currently the QA test is unavailable. I guess it is unsafe
to make a release cut due to lack of reliable QA test result.

I may defer the cut until QA test comes back if no objection.

WDYT?



--
Sent from: http://apache-spark-developers-list.1001551.n3.nabble.com/

-
To unsubscribe e-mail: dev-unsubscr...@spark.apache.org



Re: [build system] github fetches timing out

2021-03-09 Thread Nikolas Vanderhoof
Unsubscribe

On Tue, Mar 9, 2021 at 3:32 PM shane knapp ☠  wrote:

> it looks like over the past few days the master/branch builds have been
> timing out...  this hasn't happened in a few years, and honestly the last
> times this happened there was nothing that either i, or github could do
> about it.  it cleared up after a number of weeks, and we were never able to
> pinpoint the root cause.
>
> we're not hitting a github api ratelimit, and i'm able to successfully run
> the git commands on worker nodes on the command line as the jenkins user.
>
> example:
>
> https://amplab.cs.berkeley.edu/jenkins/job/spark-branch-3.0-test-maven-hadoop-2.7-hive-2.3-jdk-11/1014/console
>
> i wish i had a more concrete answer or solution for what's going on...
> i'll continue to investigate as best i can today, and if this continues,
> i'll re-open my issue w/github and see if they can shed any light on the
> situation.
>
> shane
> --
> Shane Knapp
> Computer Guy / Voice of Reason
> UC Berkeley EECS Research / RISELab Staff Technical Lead
> https://rise.cs.berkeley.edu
>


[build system] github fetches timing out

2021-03-09 Thread shane knapp ☠
it looks like over the past few days the master/branch builds have been
timing out...  this hasn't happened in a few years, and honestly the last
times this happened there was nothing that either i, or github could do
about it.  it cleared up after a number of weeks, and we were never able to
pinpoint the root cause.

we're not hitting a github api ratelimit, and i'm able to successfully run
the git commands on worker nodes on the command line as the jenkins user.

example:
https://amplab.cs.berkeley.edu/jenkins/job/spark-branch-3.0-test-maven-hadoop-2.7-hive-2.3-jdk-11/1014/console

i wish i had a more concrete answer or solution for what's going on...
i'll continue to investigate as best i can today, and if this continues,
i'll re-open my issue w/github and see if they can shed any light on the
situation.

shane
-- 
Shane Knapp
Computer Guy / Voice of Reason
UC Berkeley EECS Research / RISELab Staff Technical Lead
https://rise.cs.berkeley.edu


Re: Property spark.sql.streaming.minBatchesToRetain

2021-03-09 Thread Jungtaek Lim
That property decides how many log files (log file is created per batch per
type - types are like offsets, commits, etc.) to retain on the checkpoint.

Unless you're struggling with a small files problem on checkpoint, you
wouldn't need to tune the value. I guess that's why the configuration is
marked as "internal" meaning just some admins need to know about such
configuration.

On Wed, Mar 10, 2021 at 3:58 AM German Schiavon 
wrote:

> Hey Maxim,
>
> ok! I didn't see them.
>
> Is this property documented somewhere?
>
> Thanks!
>
> On Tue, 9 Mar 2021 at 13:57, Maxim Gekk  wrote:
>
>> Hi German,
>>
>> It is used at least at:
>> 1.
>> https://github.com/apache/spark/blob/a093d6feefb0e086d19c86ae53bf92df12ccf2fa/sql/core/src/main/scala/org/apache/spark/sql/execution/streaming/CompactibleFileStreamLog.scala#L56
>> 2.
>> https://github.com/apache/spark/blob/e7e016192f882cfb430d706c2099e58e1bcc014c/sql/core/src/main/scala/org/apache/spark/sql/execution/streaming/StreamExecution.scala#L84
>>
>> Maxim Gekk
>>
>> Software Engineer
>>
>> Databricks, Inc.
>>
>>
>> On Tue, Mar 9, 2021 at 3:27 PM German Schiavon 
>> wrote:
>>
>>> Hello all,
>>>
>>> I wanted to ask if this property is still active? I can't find it in the
>>> doc https://spark.apache.org/docs/latest/configuration.html or anywhere
>>> in the code(only in Tests).
>>>
>>> If so, should we remove it?
>>>
>>> val MIN_BATCHES_TO_RETAIN = 
>>> buildConf("spark.sql.streaming.minBatchesToRetain")
>>>   .internal()
>>>   .doc("The minimum number of batches that must be retained and made 
>>> recoverable.")
>>>   .version("2.1.1")
>>>   .intConf
>>>   .createWithDefault(100)
>>>
>>>


Re: Property spark.sql.streaming.minBatchesToRetain

2021-03-09 Thread German Schiavon
Hey Maxim,

ok! I didn't see them.

Is this property documented somewhere?

Thanks!

On Tue, 9 Mar 2021 at 13:57, Maxim Gekk  wrote:

> Hi German,
>
> It is used at least at:
> 1.
> https://github.com/apache/spark/blob/a093d6feefb0e086d19c86ae53bf92df12ccf2fa/sql/core/src/main/scala/org/apache/spark/sql/execution/streaming/CompactibleFileStreamLog.scala#L56
> 2.
> https://github.com/apache/spark/blob/e7e016192f882cfb430d706c2099e58e1bcc014c/sql/core/src/main/scala/org/apache/spark/sql/execution/streaming/StreamExecution.scala#L84
>
> Maxim Gekk
>
> Software Engineer
>
> Databricks, Inc.
>
>
> On Tue, Mar 9, 2021 at 3:27 PM German Schiavon 
> wrote:
>
>> Hello all,
>>
>> I wanted to ask if this property is still active? I can't find it in the
>> doc https://spark.apache.org/docs/latest/configuration.html or anywhere
>> in the code(only in Tests).
>>
>> If so, should we remove it?
>>
>> val MIN_BATCHES_TO_RETAIN = 
>> buildConf("spark.sql.streaming.minBatchesToRetain")
>>   .internal()
>>   .doc("The minimum number of batches that must be retained and made 
>> recoverable.")
>>   .version("2.1.1")
>>   .intConf
>>   .createWithDefault(100)
>>
>>


Re: [VOTE] SPIP: Add FunctionCatalog

2021-03-09 Thread Liang-Chi Hsieh


+1 (non-binding).

Thanks for the work!


Erik Krogen wrote
> +1 from me (non-binding)
> 
> On Tue, Mar 9, 2021 at 9:27 AM huaxin gao <

> huaxin.gao11@

> > wrote:
> 
>> +1 (non-binding)





--
Sent from: http://apache-spark-developers-list.1001551.n3.nabble.com/

-
To unsubscribe e-mail: dev-unsubscr...@spark.apache.org



Re: Apache Spark 2.4.8 (and EOL of 2.4)

2021-03-09 Thread Liang-Chi Hsieh
Hi devs,

I'm going to cut the branch yesterday. I'd like to share current progress. I
hit a problem during dry run of the release script. Fixed it in SPARK-34672.

The latest dry run looks okay as build, docs, publish all success. But the
last step (push the tag) has a fatal error, I'm not sure if it is due to dry
run mode?


= Creating release tag v2.4.8-rc1...
Command: /opt/spark-rm/release-tag.sh
Log file: tag.log

= Building Spark...
Command: /opt/spark-rm/release-build.sh package
Log file: build.log

= Building documentation...
Command: /opt/spark-rm/release-build.sh docs
Log file: docs.log

= Publishing release
Command: /opt/spark-rm/release-build.sh publish-release
Log file: publish.log
fatal: Not a git repository (or any parent up to mount point /opt/spark-rm)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).


Currently the 2.4 related Jenkins QA test aren't green. Some are not test
failure but

 > git fetch --tags --progress https://github.com/apache/spark.git
+refs/heads/*:refs/remotes/origin/* # timeout=10
ERROR: Timeout after 10 minutes
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from
https://github.com/apache/spark.git
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:996)
at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1237)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1297)
at hudson.scm.SCM.checkout(SCM.java:505)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1206)
at
hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at
hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
at hudson.model.Run.execute(Run.java:1894)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:428)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags
--progress https://github.com/apache/spark.git
+refs/heads/*:refs/remotes/origin/*" returned status code 128:


But there is also one test failure:
https://amplab.cs.berkeley.edu/jenkins/view/Spark%20QA%20Test%20(Dashboard)/job/spark-branch-2.4-test-sbt-hadoop-2.7/1221/console

I will take a look.



--
Sent from: http://apache-spark-developers-list.1001551.n3.nabble.com/

-
To unsubscribe e-mail: dev-unsubscr...@spark.apache.org



Re: [VOTE] SPIP: Add FunctionCatalog

2021-03-09 Thread Erik Krogen
+1 from me (non-binding)

On Tue, Mar 9, 2021 at 9:27 AM huaxin gao  wrote:

> +1 (non-binding)
>
> On Tue, Mar 9, 2021 at 1:12 AM Kent Yao  wrote:
>
>> +1, looks great!
>>
>> *Kent Yao *
>> @ Data Science Center, Hangzhou Research Institute, NetEase Corp.
>> *a spark enthusiast*
>> *kyuubi is a
>> unified multi-tenant JDBC interface for large-scale data processing and
>> analytics, built on top of Apache Spark .*
>> *spark-authorizer A Spark
>> SQL extension which provides SQL Standard Authorization for **Apache
>> Spark .*
>> *spark-postgres  A library
>> for reading data from and transferring data to Postgres / Greenplum with
>> Spark SQL and DataFrames, 10~100x faster.*
>> *spark-func-extras A
>> library that brings excellent and useful functions from various modern
>> database management systems to Apache Spark .*
>>
>>
>>
>> On 03/9/2021 17:10,Wenchen Fan 
>> wrote:
>>
>> +1 (binding)
>>
>> On Tue, Mar 9, 2021 at 1:47 PM Russell Spitzer 
>> wrote:
>>
>>> +1 (for what it's worth)
>>>
>>> Thanks for making such a robust proposal, i'm excited to see the new
>>> work coming from this
>>>
>>> On Mar 8, 2021, at 11:44 PM, Dongjoon Hyun 
>>> wrote:
>>>
>>> +1 (binding)
>>>
>>> Thank you, Ryan.
>>>
>>> Bests,
>>> Dongjoon.
>>>
>>>
>>> On Mon, Mar 8, 2021 at 5:20 PM Chao Sun  wrote:
>>>
 +1 (non-binding)

 On Mon, Mar 8, 2021 at 5:13 PM John Zhuge  wrote:

> +1 (non-binding)
>
> On Mon, Mar 8, 2021 at 4:32 PM Holden Karau 
> wrote:
>
>> +1 (binding)
>>
>> On Mon, Mar 8, 2021 at 3:56 PM Ryan Blue  wrote:
>>
>>> Hi everyone, I’d like to start a vote for the FunctionCatalog design
>>> proposal (SPIP).
>>>
>>> The proposal is to add a FunctionCatalog interface that can be used
>>> to load and list functions for Spark to call. There are interfaces for
>>> scalar and aggregate functions.
>>>
>>> In the discussion we’ve come to consensus and I’ve updated the
>>> design doc to match how functions will be called:
>>>
>>> In addition to produceResult(InternalRow), which is optional,
>>> functions can define produceResult methods with arguments that are
>>> Spark’s internal data types, like UTF8String. Spark will prefer
>>> these methods when calling the UDF using codgen.
>>>
>>> I’ve also updated the AggregateFunction interface and merged it
>>> with the partial aggregate interface because Spark doesn’t support
>>> non-partial aggregates.
>>>
>>> The full SPIP doc is here:
>>> https://docs.google.com/document/d/1PLBieHIlxZjmoUB0ERF-VozCRJ0xw2j3qKvUNWpWA2U/edit#heading=h.82w8qxfl2uwl
>>>
>>> Please vote on the SPIP in the next 72 hours. Once it is approved,
>>> I’ll do a final update of the PR and we can merge the API.
>>>
>>> [ ] +1: Accept the proposal as an official SPIP
>>> [ ] +0
>>> [ ] -1: I don’t think this is a good idea because …
>>> --
>>> Ryan Blue
>>>
>> --
>> Twitter: https://twitter.com/holdenkarau
>> Books (Learning Spark, High Performance Spark, etc.):
>> https://amzn.to/2MaRAG9  
>> YouTube Live Streams: https://www.youtube.com/user/holdenkarau
>>
>
>
> --
> John Zhuge
>

>>> - To
>> unsubscribe e-mail: dev-unsubscr...@spark.apache.org
>
>


Re: [VOTE] SPIP: Add FunctionCatalog

2021-03-09 Thread huaxin gao
+1 (non-binding)

On Tue, Mar 9, 2021 at 1:12 AM Kent Yao  wrote:

> +1, looks great!
>
> *Kent Yao *
> @ Data Science Center, Hangzhou Research Institute, NetEase Corp.
> *a spark enthusiast*
> *kyuubi is a unified multi-tenant JDBC
> interface for large-scale data processing and analytics, built on top
> of Apache Spark .*
> *spark-authorizer A Spark
> SQL extension which provides SQL Standard Authorization for **Apache
> Spark .*
> *spark-postgres  A library for
> reading data from and transferring data to Postgres / Greenplum with Spark
> SQL and DataFrames, 10~100x faster.*
> *spark-func-extras A
> library that brings excellent and useful functions from various modern
> database management systems to Apache Spark .*
>
>
>
> On 03/9/2021 17:10,Wenchen Fan 
> wrote:
>
> +1 (binding)
>
> On Tue, Mar 9, 2021 at 1:47 PM Russell Spitzer 
> wrote:
>
>> +1 (for what it's worth)
>>
>> Thanks for making such a robust proposal, i'm excited to see the new work
>> coming from this
>>
>> On Mar 8, 2021, at 11:44 PM, Dongjoon Hyun 
>> wrote:
>>
>> +1 (binding)
>>
>> Thank you, Ryan.
>>
>> Bests,
>> Dongjoon.
>>
>>
>> On Mon, Mar 8, 2021 at 5:20 PM Chao Sun  wrote:
>>
>>> +1 (non-binding)
>>>
>>> On Mon, Mar 8, 2021 at 5:13 PM John Zhuge  wrote:
>>>
 +1 (non-binding)

 On Mon, Mar 8, 2021 at 4:32 PM Holden Karau 
 wrote:

> +1 (binding)
>
> On Mon, Mar 8, 2021 at 3:56 PM Ryan Blue  wrote:
>
>> Hi everyone, I’d like to start a vote for the FunctionCatalog design
>> proposal (SPIP).
>>
>> The proposal is to add a FunctionCatalog interface that can be used
>> to load and list functions for Spark to call. There are interfaces for
>> scalar and aggregate functions.
>>
>> In the discussion we’ve come to consensus and I’ve updated the design
>> doc to match how functions will be called:
>>
>> In addition to produceResult(InternalRow), which is optional,
>> functions can define produceResult methods with arguments that are
>> Spark’s internal data types, like UTF8String. Spark will prefer
>> these methods when calling the UDF using codgen.
>>
>> I’ve also updated the AggregateFunction interface and merged it with
>> the partial aggregate interface because Spark doesn’t support non-partial
>> aggregates.
>>
>> The full SPIP doc is here:
>> https://docs.google.com/document/d/1PLBieHIlxZjmoUB0ERF-VozCRJ0xw2j3qKvUNWpWA2U/edit#heading=h.82w8qxfl2uwl
>>
>> Please vote on the SPIP in the next 72 hours. Once it is approved,
>> I’ll do a final update of the PR and we can merge the API.
>>
>> [ ] +1: Accept the proposal as an official SPIP
>> [ ] +0
>> [ ] -1: I don’t think this is a good idea because …
>> --
>> Ryan Blue
>>
> --
> Twitter: https://twitter.com/holdenkarau
> Books (Learning Spark, High Performance Spark, etc.):
> https://amzn.to/2MaRAG9  
> YouTube Live Streams: https://www.youtube.com/user/holdenkarau
>


 --
 John Zhuge

>>>
>> - To
> unsubscribe e-mail: dev-unsubscr...@spark.apache.org


Re: Property spark.sql.streaming.minBatchesToRetain

2021-03-09 Thread Maxim Gekk
Hi German,

It is used at least at:
1.
https://github.com/apache/spark/blob/a093d6feefb0e086d19c86ae53bf92df12ccf2fa/sql/core/src/main/scala/org/apache/spark/sql/execution/streaming/CompactibleFileStreamLog.scala#L56
2.
https://github.com/apache/spark/blob/e7e016192f882cfb430d706c2099e58e1bcc014c/sql/core/src/main/scala/org/apache/spark/sql/execution/streaming/StreamExecution.scala#L84

Maxim Gekk

Software Engineer

Databricks, Inc.


On Tue, Mar 9, 2021 at 3:27 PM German Schiavon 
wrote:

> Hello all,
>
> I wanted to ask if this property is still active? I can't find it in the
> doc https://spark.apache.org/docs/latest/configuration.html or anywhere
> in the code(only in Tests).
>
> If so, should we remove it?
>
> val MIN_BATCHES_TO_RETAIN = 
> buildConf("spark.sql.streaming.minBatchesToRetain")
>   .internal()
>   .doc("The minimum number of batches that must be retained and made 
> recoverable.")
>   .version("2.1.1")
>   .intConf
>   .createWithDefault(100)
>
>


Property spark.sql.streaming.minBatchesToRetain

2021-03-09 Thread German Schiavon
Hello all,

I wanted to ask if this property is still active? I can't find it in the
doc https://spark.apache.org/docs/latest/configuration.html or anywhere in
the code(only in Tests).

If so, should we remove it?

val MIN_BATCHES_TO_RETAIN = buildConf("spark.sql.streaming.minBatchesToRetain")
  .internal()
  .doc("The minimum number of batches that must be retained and made
recoverable.")
  .version("2.1.1")
  .intConf
  .createWithDefault(100)


Re: [VOTE] SPIP: Add FunctionCatalog

2021-03-09 Thread Kent Yao







+1, looks great!






  



















Kent Yao @ Data Science Center, Hangzhou Research Institute, NetEase Corp.a spark enthusiastkyuubiis a unified multi-tenant JDBC interface for large-scale data processing and analytics, built on top of Apache Spark.spark-authorizerA Spark SQL extension which provides SQL Standard Authorization for Apache Spark.spark-postgres A library for reading data from and transferring data to Postgres / Greenplum with Spark SQL and DataFrames, 10~100x faster.spark-func-extrasA library that brings excellent and useful functions from various modern database management systems to Apache Spark.















 


On 03/9/2021 17:10,Wenchen Fan wrote: 


+1 (binding)On Tue, Mar 9, 2021 at 1:47 PM Russell Spitzer  wrote:+1 (for what it's worth)Thanks for making such a robust proposal, i'm excited to see the new work coming from thisOn Mar 8, 2021, at 11:44 PM, Dongjoon Hyun  wrote:+1 (binding)Thank you, Ryan.Bests,Dongjoon.On Mon, Mar 8, 2021 at 5:20 PM Chao Sun  wrote:+1 (non-binding)On Mon, Mar 8, 2021 at 5:13 PM John Zhuge  wrote:+1 (non-binding)On Mon, Mar 8, 2021 at 4:32 PM Holden Karau  wrote:+1 (binding)On Mon, Mar 8, 2021 at 3:56 PM Ryan Blue  wrote:Hi everyone, I’d like to start a vote for the FunctionCatalog design proposal (SPIP).The proposal is to add a FunctionCatalog interface that can be used to load and list functions for Spark to call. There are interfaces for scalar and aggregate functions.In the discussion we’ve come to consensus and I’ve updated the design doc to match how functions will be called:
In addition to produceResult(InternalRow), which is optional, functions can define produceResult methods with arguments that are Spark’s internal data types, like UTF8String. Spark will prefer these methods when calling the UDF using codgen.
I’ve also updated the AggregateFunction interface and merged it with the partial aggregate interface because Spark doesn’t support non-partial aggregates.The full SPIP doc is here: https://docs.google.com/document/d/1PLBieHIlxZjmoUB0ERF-VozCRJ0xw2j3qKvUNWpWA2U/edit#heading=h.82w8qxfl2uwlPlease vote on the SPIP in the next 72 hours. Once it is approved, I’ll do a final update of the PR and we can merge the API.[ ] +1: Accept the proposal as an official SPIP[ ] +0[ ] -1: I don’t think this is a good idea because …
-- Ryan Blue
-- Twitter: https://twitter.com/holdenkarauBooks (Learning Spark, High Performance Spark, etc.): https://amzn.to/2MaRAG9 YouTube Live Streams: https://www.youtube.com/user/holdenkarau
-- John Zhuge








-
To unsubscribe e-mail: dev-unsubscr...@spark.apache.org



Re: [VOTE] SPIP: Add FunctionCatalog

2021-03-09 Thread Wenchen Fan
+1 (binding)

On Tue, Mar 9, 2021 at 1:47 PM Russell Spitzer 
wrote:

> +1 (for what it's worth)
>
> Thanks for making such a robust proposal, i'm excited to see the new work
> coming from this
>
> On Mar 8, 2021, at 11:44 PM, Dongjoon Hyun 
> wrote:
>
> +1 (binding)
>
> Thank you, Ryan.
>
> Bests,
> Dongjoon.
>
>
> On Mon, Mar 8, 2021 at 5:20 PM Chao Sun  wrote:
>
>> +1 (non-binding)
>>
>> On Mon, Mar 8, 2021 at 5:13 PM John Zhuge  wrote:
>>
>>> +1 (non-binding)
>>>
>>> On Mon, Mar 8, 2021 at 4:32 PM Holden Karau 
>>> wrote:
>>>
 +1 (binding)

 On Mon, Mar 8, 2021 at 3:56 PM Ryan Blue  wrote:

> Hi everyone, I’d like to start a vote for the FunctionCatalog design
> proposal (SPIP).
>
> The proposal is to add a FunctionCatalog interface that can be used to
> load and list functions for Spark to call. There are interfaces for scalar
> and aggregate functions.
>
> In the discussion we’ve come to consensus and I’ve updated the design
> doc to match how functions will be called:
>
> In addition to produceResult(InternalRow), which is optional,
> functions can define produceResult methods with arguments that are
> Spark’s internal data types, like UTF8String. Spark will prefer these
> methods when calling the UDF using codgen.
>
> I’ve also updated the AggregateFunction interface and merged it with
> the partial aggregate interface because Spark doesn’t support non-partial
> aggregates.
>
> The full SPIP doc is here:
> https://docs.google.com/document/d/1PLBieHIlxZjmoUB0ERF-VozCRJ0xw2j3qKvUNWpWA2U/edit#heading=h.82w8qxfl2uwl
>
> Please vote on the SPIP in the next 72 hours. Once it is approved,
> I’ll do a final update of the PR and we can merge the API.
>
> [ ] +1: Accept the proposal as an official SPIP
> [ ] +0
> [ ] -1: I don’t think this is a good idea because …
> --
> Ryan Blue
>
 --
 Twitter: https://twitter.com/holdenkarau
 Books (Learning Spark, High Performance Spark, etc.):
 https://amzn.to/2MaRAG9  
 YouTube Live Streams: https://www.youtube.com/user/holdenkarau

>>>
>>>
>>> --
>>> John Zhuge
>>>
>>
>