Paweł Kociński created SEDONA-739: ------------------------------------- Summary: ST_DBScan fails when selecting only subset of columns. Key: SEDONA-739 URL: https://issues.apache.org/jira/browse/SEDONA-739 Project: Apache Sedona Issue Type: Bug Reporter: Paweł Kociński
{code:java} dbscan_df = sedona.sql( """ SELECT index, geom AS geom, ST_DBSCAN(geom, 0.5, 10, False) AS scan FROM points """ ) {code} Selecting all columns works just fine {code:java} result = dbscan_df.select("scan.*", "index", "geom") {code} but subset {code:java} dbscan_df.select("scan.*", "index").show() {code} is causing the {code:java} IllegalArgumentException Traceback (most recent call last) Cell In[56], line 1 ----> 1 dbscan_df.select("scan.*", "index").show() File /opt/spark/python/pyspark/sql/dataframe.py:947, in DataFrame.show(self, n, truncate, vertical) 887 def show(self, n: int = 20, truncate: Union[bool, int] = True, vertical: bool = False) -> None: 888 """Prints the first ``n`` rows to the console. 889 890 .. versionadded:: 1.3.0 (...) 945 name | Bob 946 """ --> 947 print(self._show_string(n, truncate, vertical)) File /opt/spark/python/pyspark/sql/dataframe.py:965, in DataFrame._show_string(self, n, truncate, vertical) 959 raise PySparkTypeError( 960 error_class="NOT_BOOL", 961 message_parameters={"arg_name": "vertical", "arg_type": type(vertical).__name__}, 962 ) 964 if isinstance(truncate, bool) and truncate: --> 965 return self._jdf.showString(n, 20, vertical) 966 else: 967 try: File /usr/local/lib/python3.10/dist-packages/py4j/java_gateway.py:1322, in JavaMember.__call__(self, *args) 1316 command = proto.CALL_COMMAND_NAME +\ 1317 self.command_header +\ 1318 args_command +\ 1319 proto.END_COMMAND_PART 1321 answer = self.gateway_client.send_command(command) -> 1322 return_value = get_return_value( 1323 answer, self.gateway_client, self.target_id, self.name) 1325 for temp_arg in temp_args: 1326 if hasattr(temp_arg, "_detach"): File /opt/spark/python/pyspark/errors/exceptions/captured.py:185, in capture_sql_exception.<locals>.deco(*a, **kw) 181 converted = convert_exception(e.java_exception) 182 if not isinstance(converted, UnknownException): 183 # Hide where the exception came from that shows a non-Pythonic 184 # JVM exception message. --> 185 raise converted from None 186 else: 187 raise IllegalArgumentException: geometry argument must be a named reference to an existing column {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)