belom88 opened a new issue, #1771:
URL: https://github.com/apache/sedona/issues/1771

   I have an issue trying to use Apache Sedona on the Python backend:
   ```
   @app.get("/original")
   def read_original_dataset():
       fileName = "Addresses"
       config = (
           SedonaContext.builder()
           .master("local[*]")
           .config(
               "spark.jars.packages",
               "org.scala-lang.modules:scala-collection-compat_2.12:2.12.0,"
               "org.apache.sedona:sedona-spark-3.5_2.12:1.7.0,"
               "org.datasyslab:geotools-wrapper:1.7.0-28.5,"
           )
           .getOrCreate()
       )
       sedona = SedonaContext.create(config)
       df = sedona.read.format("shapefile").load(fileName).alias("df")
   
       df_lng_lat = df.drop("geometry").select(ST_Point(df.LONGITUDE, 
df.LATITUDE).alias("geometry"), "*")
   
        # Convert to Pandas DataFrame for GeoPandas compatibility
       pdf = df_lng_lat.toPandas()
       # pdf['geometry'] = gpd.GeoSeries.from_wkt(pdf['geom'])
       gdf = gpd.GeoDataFrame(pdf, geometry='geometry')
   
       # Write to GeoParquet in memory
       buffer = io.BytesIO()
       gdf.to_parquet(buffer, engine='pyarrow', index=False)
   
        # Return as a binary response
       buffer.seek(0)
       return Response(content=buffer.read(), 
media_type="application/octet-stream")
   ```
   
   `ST_Point(df.LONGITUDE, df.LATITUDE)` fails with
   ```
   INFO:     127.0.0.1:58898 - "GET /original HTTP/1.1" 500 Internal Server 
Error
   ERROR:    Exception in ASGI application
   Traceback (most recent call last):
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py",
 line 409, in run_asgi
       result = await app(  # type: ignore[func-returns-value]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py",
 line 60, in __call__
       return await self.app(scope, receive, send)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/fastapi/applications.py",
 line 1054, in __call__
       await super().__call__(scope, receive, send)
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/applications.py",
 line 112, in __call__
       await self.middleware_stack(scope, receive, send)
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/middleware/errors.py",
 line 187, in __call__
       raise exc
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/middleware/errors.py",
 line 165, in __call__
       await self.app(scope, receive, _send)
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/middleware/cors.py",
 line 93, in __call__
       await self.simple_response(scope, receive, send, request_headers=headers)
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/middleware/cors.py",
 line 144, in simple_response
       await self.app(scope, receive, send)
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/middleware/exceptions.py",
 line 62, in __call__
       await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/_exception_handler.py",
 line 53, in wrapped_app
       raise exc
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/_exception_handler.py",
 line 42, in wrapped_app
       await app(scope, receive, sender)
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/routing.py",
 line 715, in __call__
       await self.middleware_stack(scope, receive, send)
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/routing.py",
 line 735, in app
       await route.handle(scope, receive, send)
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/routing.py",
 line 288, in handle
       await self.app(scope, receive, send)
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/routing.py",
 line 76, in app
       await wrap_app_handling_exceptions(app, request)(scope, receive, send)
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/_exception_handler.py",
 line 53, in wrapped_app
       raise exc
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/_exception_handler.py",
 line 42, in wrapped_app
       await app(scope, receive, sender)
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/routing.py",
 line 73, in app
       response = await f(request)
                  ^^^^^^^^^^^^^^^^
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/fastapi/routing.py",
 line 301, in app
       raw_response = await run_endpoint_function(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/fastapi/routing.py",
 line 214, in run_endpoint_function
       return await run_in_threadpool(dependant.call, **values)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/starlette/concurrency.py",
 line 37, in run_in_threadpool
       return await anyio.to_thread.run_sync(func)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/anyio/to_thread.py",
 line 56, in run_sync
       return await get_async_backend().run_sync_in_worker_thread(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/anyio/_backends/_asyncio.py",
 line 2364, in run_sync_in_worker_thread
       return await future
              ^^^^^^^^^^^^
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/anyio/_backends/_asyncio.py",
 line 864, in run
       result = context.run(func, *args)
                ^^^^^^^^^^^^^^^^^^^^^^^^
     File "/home/vbelomestnov/apps/data_validation/sedona_api/main.py", line 
85, in read_original_dataset
       df_lng_lat = df.drop("geometry").select(ST_Point(df.LONGITUDE, 
df.LATITUDE).alias("geometry"), "*")
                                               
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/sedona/sql/dataframe_api.py",
 line 191, in validated_function
       return f(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/sedona/sql/st_constructors.py",
 line 229, in ST_Point
       return _call_constructor_function("ST_Point", (x, y))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/vbelomestnov/anaconda3/envs/sedona_1_backend/lib/python3.11/site-packages/sedona/sql/dataframe_api.py",
 line 62, in call_sedona_function
       raise ValueError(
   ValueError: No active spark session was detected. Unable to call sedona 
function.
   25/01/24 09:29:36 WARN SparkStringUtils: Truncated the string representation 
of a plan since it was too large. This behavior can be adjusted by setting 
'spark.sql.debug.maxToStringFields'.
   ```
   
   The same code works in a Jupiter Notebook. Backend sample app and Jupiter 
notebook are attached.
   
   
[sedona_backend.zip](https://github.com/user-attachments/files/18532773/sedona_backend.zip)
   
   
[find_duplicates_notebook.zip](https://github.com/user-attachments/files/18532776/find_duplicates_notebook.zip)


-- 
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.

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

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to