milenkovicm opened a new issue, #1701:
URL: https://github.com/apache/datafusion-python/issues/1701

   **Is your feature request related to a problem or challenge? Please describe 
what you are trying to do.**
   
   I would like to be able to define a python function using SQL `CREATE 
FUNCTION` statement.
   
   Something like 
   
   ```rust
   let sql = r#"
   CREATE FUNCTION to_miles(DOUBLE)
   RETURNS DOUBLE
   LANGUAGE PYARROW
   AS '
   import pyarrow.compute as pc
   
   conversation_rate_multiplier = 0.62137119
   
   def to_miles(km_data):
       return pc.multiply(km_data, conversation_rate_multiplier)
   '
   "#;
   
   ctx.sql(sql).await?.show().await?;
   
   ctx.sql("select double_col, to_miles(double_col) from t")
       .await?
       .show()
       .await?;
   ```
   
   **Describe the solution you'd like**
   
   datafusion provides pluggable 
`datafusion::execution::context::FunctionFactory` which could be wired to 
interpret python function definitions. 
   
   we could provide column based function definitions (`LANGUAGE PYARROW`) or 
row based (`LANGUAGE PYTHON`)
   
   **Describe alternatives you've considered**
   
   
   
   **Additional context**
   
   - databricks has [similar 
functionality](https://docs.databricks.com/aws/en/udf/unity-catalog)
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to