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

Bryan Cutler edited comment on SPARK-34463 at 3/2/21, 6:11 PM:
---------------------------------------------------------------

As David said, it depends on what is done in Pandas that might lead to this. 
I'm not sure why `value_counts()` would cause this error, but other operations 
should work. I believe you could also workaround by making a copy of the 
DataFrame yourself. I think this example shows that the self destruct feature 
should be clearly documented to be experimental and only used if you know 
absolutely what you are doing.


was (Author: bryanc):
As David said, it depends on what is done in Pandas that might lead to this. 
I'm not sure why `value_counts()` would cause this error, but other operations 
should work. I believe you could also workaround by making a copy of the 
DataFrame yourself. I think this example shows that the self descruct feature 
should be clearly documented to be experimental and only used if you know 
absolutely what you are doing.

> toPandas failed with error: buffer source array is read-only when Arrow with 
> self-destruct is enabled
> -----------------------------------------------------------------------------------------------------
>
>                 Key: SPARK-34463
>                 URL: https://issues.apache.org/jira/browse/SPARK-34463
>             Project: Spark
>          Issue Type: Bug
>          Components: PySpark
>    Affects Versions: 3.2.0
>            Reporter: Weichen Xu
>            Priority: Major
>
> Environment:
> apache/spark master 
>  pandas version > 1.0.5
> Reproduce code:
> {code:java}
> spark.conf.set('spark.sql.execution.arrow.pyspark.enabled', True)
> spark.conf.set('spark.sql.execution.arrow.pyspark.selfDestruct.enabled', True)
> spark.createDataFrame(sc.parallelize([(i,) for i in range(13)], 1), 'id 
> long').selectExpr('IF(id % 3==0, id+1, NULL) AS f1', '(id+1) % 2 AS 
> label').toPandas()['label'].value_counts()
> {code}
> Get error like:
> {quote}Traceback (most recent call last): 
>  File "<stdin>", line 1, in <module>
>  File 
> "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/base.py",
>  line 1033, in value_counts
>  dropna=dropna,
>  File 
> "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/algorithms.py",
>  line 820, in value_counts
>  keys, counts = value_counts_arraylike(values, dropna)
>  File 
> "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pandas/core/algorithms.py",
>  line 865, in value_counts_arraylike
>  keys, counts = f(values, dropna)
>  File "pandas/_libs/hashtable_func_helper.pxi", line 1098, in 
> pandas._libs.hashtable.value_count_int64
>  File "stringsource", line 658, in View.MemoryView.memoryview_cwrapper
>  File "stringsource", line 349, in View.MemoryView.memoryview.__cinit__
>  ValueError: buffer source array is read-only
> {quote}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to