1234567891011121314151617181920212223242526272829303132 |
- (
- (let config (DataSource 'config))
- # prepare python udf
- (let ui32 (DataType 'Uint32))
- (let str (DataType 'String))
- (let personType (StructType '('name str) '('age ui32)))
- (let udfType (CallableType '() '(personType) '(str) '(ui32)))
- (let udfScript (String '@@
- class Person:
- def __init__(self, name, age):
- self.name = name
- self.age = age
- def NewPerson(name, age):
- return Person(name, age)
- @@))
- (let udf (ScriptUdf 'Python3 'NewPerson udfType udfScript))
- # call udf
- (let result (Apply udf (String 'Jamel) (Uint32 '99)))
- # output result with type
- (let res_sink (DataSink 'result))
- (let world (Write! world res_sink (Key) result '('('type))))
- # finish
- (let world (Commit! world res_sink))
- (return world)
- )
|