序列化字符串

序列化字符串通道与工作区文件通道类似。 在这种情况下,用户代码将直接作为 "CODE_SERIALIZED环境变量的值传递,而不会在工作区目录中生成中间文件。 文件包含一个序列化列表,字符串变量也经过base64-encoded。

该列表元素包括
  • 必须填写: mode fun, 'args.
  • 可选: 'shaper, 'shaper.args, 'columns, 'shaper.list, 'file
创建 "CODE_SERIALIZED变量内容的 R 代码需要使用 "caToolsCRAN 软件包:
x <- list(mode='run', args=list(), fun=function(){
getNext(); setOutput(0,'output value'); outputResult()})
base64encode(rawToChar(serialize(x, NULL, ascii=TRUE)))
示例中提供了 SQL 查询。 请注意,反斜杠表示续行,粘贴到 "nzsql时应省略:
SELECT * FROM TABLE WITH
FINAL(nzr..r_udtf('CODE_SERIALIZED=QQoyCjEzMzYzMwoxMzE\
4NDAKNTMxCjMKMTYKMQo5CjMKcnVuCjE5CjAKMTUzOQoxMDI2CjEKO\
Qo2CnNvdXJjZQoxNgoxCjkKNjYKZnVuY3Rpb24oKXtnZXROZXh0KCk\
7XDA0MHNldE91dHB1dCgwLFwnb3V0cHV0XDA0MHZhbHVlXCcpO1wwN\
DBvdXRwdXRSZXN1bHQoKX0KMjU0CjI1MwoyNTQKNgoxCjkKMQp7CjI\
KNgoxCjkKNwpnZXROZXh0CjI1NAoyCjYKMQo5CjkKc2V0T3V0cHV0C\
jIKMTQKMQowCjIKMTYKMQo5CjEyCm91dHB1dFwwNDB2YWx1ZQoyNTQ\
KMgo2CjEKOQoxMgpvdXRwdXRSZXN1bHQKMjU0CjI1NAoxMDI2CjEKO\
Qo1Cm5hbWVzCjE2CjMKOQo0Cm1vZGUKOQo0CmFyZ3MKOQozCmZ1bgo\
yNTQKAA=='))
在 SQL 控制台中传递时,结果将再次出现:
COLUMNID | VALUE
----------+--------------
0 | output value
(1 row)