xinrong-databricks commented on a change in pull request #32785:
URL: https://github.com/apache/spark/pull/32785#discussion_r647616907
##########
File path: python/pyspark/pandas/data_type_ops/base.py
##########
@@ -52,33 +52,42 @@
from pyspark.pandas.series import Series # noqa: F401 (SPARK-34943)
-def is_valid_operand_for_numeric_arithmetic(operand: Any, *, allow_bool: bool
= True) -> bool:
- """Check whether the operand is valid for arithmetic operations against
numerics."""
+def is_valid_operand_for_numeric_arithmetic(
+ operand: Any, *, allow_bool_index_ops: bool = True, allow_bool: bool = True
Review comment:
Good question. There is not a case where only bool index should be
allowed alone, but here is a case `allow_bool_index_ops` is `False`, whereas
`allow_bool` is `True`, for example
```py
>>> ps.Series([True, False, True]) + ps.Series([True, False, True])
Traceback (most recent call last):
...
TypeError: Addition can not be applied to booleans and the given type.
>>> ps.Series([True, False, True]) + True
0 True
1 True
2 True
dtype: bool
```
In case you are interested, there is a case `allow_bool_index_ops` and
`allow_bool` are both `True`, for example
```py
>>> ps.Series([1, 2, 3]) + ps.Series([True, False, True])
0 2
1 2
2 4
dtype: int64
>>> ps.Series([1, 2, 3]) + True
0 2
1 3
2 4
dtype: int64
```
And there is a case `allow_bool_index_ops` and `allow_bool` are both
`False`, for example
```py
>> ps.Series([True, False, True]) - ps.Series([True, False, True])
Traceback (most recent call last):
...
TypeError: Subtraction can not be applied to booleans and the given type.
>>> ps.Series([True, False, True]) - True
Traceback (most recent call last):
...
TypeError: Subtraction can not be applied to booleans and the given type.
```
That's why `allow_bool_index_ops` might be needed. Does that make sense?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]