微信扫码
添加专属顾问
我要投稿
Palantir的Pipeline Builder如何通过120种算子解决企业AI数据难题? 核心内容: 1. AI ready数据的核心挑战与Palantir的解决方案 2. Pipeline Builder两大算子类型与无代码数据处理能力 3. 业务分析师与数据工程师的高效协作新范式
没有AI ready数据,AI就是个笑话。
那到底什么是AI ready数据?两层含义。
第一类是用于大模型训练的高质量语料数据。
第二类是喂给大模型推理的Context上下文数据。
目前AI在企业落地卡点主要是在第二类数据。市面上的RAG和KAG效果都不太理想。
第二类数据更重要,是复杂分散海量动态变化的,是企业私域的,是带语义语境的,直接决定了大模型推理结果是否靠谱。
Palantir直接用pipeline builder+本体OAG+Logic解决了第二类数据问题。
因此Pipeline builder是创建AI ready数据的核心关键之一。
Palantir Pipeline Builder提供了一个算子库,是一个涵盖了从基础算术到复杂地理空间分析的庞大武库。数百种算子,任由发挥,处理数据,生产AI ready数据,灌给本体。
特别是有了Use LLM大模型算子之后,能力更加爆表。
对于业务分析师,Pipeline Builder提供了LeftJoin,Pivot,if/else等直观的工具,使其能完成以前必须依赖IT部门才能做的数据清洗。
对于数据工程师,Pipeline Builder提供了WindowFunctions,Explode,Regex,Struct等高级操作,使其能在不写一行Scala代码的情况下构建高性能的Spark任务。
有了Pipeline Builder可以通过无代码可视化的方式提供等同于编写Spark代码的强大数据处理能力。
Pipeline Builder的后端基于Apache Spark,因此它几乎支持SparkSQL的所有函数,加上Palantir自定义的处理逻辑。
Pipeline Builder的算子主要分为表级变换(Table Transforms)和列表达式(Column Expressions)两大类。总数超过百种。
Pipeline Builder打破了传统数据工程中业务分析师与数据开发工程师之间的壁垒。用户不再需要精通Python或Scala,只需通过拖拉拽和配置表达式,即可构建出生产级的、基于Spark的大数据处理管道。
Pipeline Builder之所以强大,核心在于其内置的庞大算子库(Library of Operators)。这些算子不仅覆盖了标准SQL的所有功能,还集成了复杂的数组处理、地理空间计算甚至机器学习预处理功能。
一、架构基础与算子概览
Pipeline Builder中算子存在的两种形态。
一是变换节点(Transforms):这是宏观层面的算子。它们改变数据的形状(Shape)或结构。例如:将两张表合并、过滤行、透视表等。
二是表达式(Expressions):这是微观层面的算子。它们存在于变换节点内部,用于计算新列的值。例如:字符串截取、日期加减、正则匹配等。
Pipeline Builder的后端引擎是Apache Spark。因此每一个算子,最终都会被编译成Spark Catalyst优化器可执行的逻辑计划。这意味着,在界面上点的每一个算子,其性能理论上等同于手写的高质量Spark代码。
二、表级变换算子(Table Transforms)
表级算子决定了数据流的走向和结构。目前Pipeline Builder提供了约50+种核心表级变换,涵盖了数据工程的方方面面。
在实际构建 Pipeline 时,90% 的时间只会用到以下 7 个 Transform:
- Add Column (写表达式处理逻辑)
- Filter (清洗数据)
- Join (拼表)
- Group By (统计指标)
- Window (计算复杂逻辑如 YoY, MoM)
- Union (追加数据)
- Pivot/Unpivot (调整报表结构)
下面标绿色背景的是我们会常用的一些算子。
数据合并与关联
1. Join(关联):支持Left,Right,Inner,FullOuter,CrossJoin。Pipeline Builder提供了一个可视化的连线视图,允许用户在不同列名之间建立键值关系。将不同来源的数据(如CRM数据和ERP数据)根据ID拼接到一起。
2. Cross Join: 笛卡尔积(每一行与另一表的每一行匹配)。通常用于生成日期序列或测试数据。
3. Union(并集):支持UnionAll(保留重复)和UnionDistinct(去重)。将结构相同的多张表(例如“1月销售”和“2月销售”)上下堆叠。
4. Intersect: 用于集合运算的交集。保留两个数据集中共有的行。
5. Lookup: 类似于 Excel VLOOKUP 的简化版 Join。通常用于将“代码”替换为“名称”(例如将 country_code 替换为 country_name)。
形状与结构变换 (Shape & Structure)
改变数据的物理结构(行数或列结构)。
6. Group By: 分组聚合。这是使用频率最高的算子之一。通常配合 Sum, Count, Max, Avg, Collect List 等聚合逻辑。
7. Pivot: 透视(行转列)。示例:将“月份”列的值(1月、2月...)变为独立的列头。将“日期、产品、销量”三列数据,转换为以“日期”为行,“产品”为列的宽表。
8. Unpivot: 逆透视(列转行)。是处理Excel类宽表的利器,将非结构化的宽表压回标准的数据库长表格式。示例:将“1月销量”、“2月销量”多列压缩为“月份”和“销量”两列。
9. Explode(数组展开):针对数组(Array)类型的算子。功能是将一行中的数组列拆分成多行。例如,一行订单包含多个商品ID,Explode后会变成多行,每行一个商品ID。对JSON数据处理特别有用,比如在PDF文档结构化变换时总用到这个算子。
10. Window: 窗口函数。不改变行数的情况下计算排名、移动平均、累计求和等。包含Rank, Dense Rank, Row Number, Lead, Lag, Running Total.这是高级数据开发的分水岭。Pipeline Builder允许用户定义Partition By和Order By,然后应用Rank,RowNumber,Lead,Lag等算子。主要场景包括计算每个用户按时间排序的“下一次购买时间”,或计算“过去7天的移动平均值”。
行级操作 (Row Operations)
针对行的筛选和排序。
11. Filter: 过滤。使用条件表达式保留或剔除行。支持复杂的布尔逻辑(AND/OR嵌套)。
12. Drop Duplicates去重: 可以针对全行去重,也可以指定特定列(Subset)去重。可基于“所有列”或“特定列子集”进行去重。支持保留“第一行”或“最后一行”(通常配合 Sort 使用)。
13. Sort / Order By: 排序。
14. Limit / Sample: 限制行数或随机采样。Top N: 获取前 N 行。Random Sample: 按百分比随机抽取。
15. Difference (Except): 用于集合运算的差集。保留在表 A 中但不在表 B 中的行。
列级操作 (Column Operations)
对字段进行增删改查。
16. Add Column: 添加列。这是最通用的算子,内部可以写任何 Spark SQL 表达式(Regex, Math, String logic 等)。
17. Select Columns: 选择列。仅保留选中的列,丢弃其他。
18. Drop Columns: 删除列。
19. Rename Columns: 重命名。支持批量重命名(例如:给所有列加前缀)。
20. Clean Column Names: 清洗列名。自动将 Column A 转换为 column_a(小写、下划线),去除非法字符。
21. Cast: 类型转换。将列强制转换为 String, Integer, Date, Double 等。
清洗与智能处理 (Cleaning & Smart Transforms)
Palantir 特有的或封装的高级清洗功能。
22. Smart Cast: 智能类型转换。自动推断列的最佳类型。例如,它能识别 "2023-01-01" 和 "01/01/2023" 混合的列并将其统一转为 Date 类型。
23. Impute / Fill Nulls: 填充空值。支持用固定值、平均值、中位数或前/后值填充 Null。
24. Trim / Whitespace: 批量去除字符串列的首尾空格。
25. Normalize: 文本标准化(例如统一转小写,去除重音符号)。
地理空间 (Geospatial)
Foundry 强项,处理地图数据。
26. Geohash Encode/Decode: 将经纬度转换为 Geohash 字符串。
27. H3 Index: 将经纬度转换为 Uber H3 六边形网格索引(常用于空间聚合)。
28. Distance: 计算两点间的地理距离(Haversine formula)。
29. Point in Polygon: 判断点是否在多边形内(通常通过 Join 或 UDF 实现,但在某些版本有封装算子)。
特殊功能算子
除了上述基础的SQL映射算子,Pipeline Builder还包含一些AI算子。
30. SmartCast(智能类型转换)
不仅仅是简单的cast(colasint)。Pipeline Builder提供智能推断算子,能够扫描列中的数据模式,自动建议并将String转换为Date,Integer或Boolean,并处理异常格式(如"2023/01/01"和"2023-01-01"混杂的情况)。
31. Lookups(查找/字典映射)
类似于Excel的VLOOKUP,但更高效。用户可以上传一个CSV字典,使用Lookup算子将代码(如"CN")替换为全称(如"China"),而无需编写繁琐的Join逻辑。
32. User Defined Functions(UDFs)-扩展算子
尽管内置了数百种算子,Pipeline Builder还允许逃生舱模式。如果真的遇到了内置算子无法解决的逻辑(例如极复杂的专有数学模型),用户可以在Pipeline Builder中嵌入PythonUDF(需权限允许),自定义一个算子节点。
Use LLM大模型算子
这是个万能算子,负责利用大模型处理生成、分析、提取、翻译等所有逻辑任务。
这是 Pipeline Builder 中最核心、最强大的 GenAI 算子。它本质上是一个通过 API 批量调用 LLM(如 GPT-4, Claude 3等)的通用接口。它接收管道中的一列或多列数据作为输入(Context),结合用户定义的提示词(Prompt),将 LLM 的生成结果输出到新的一列。为了简化操作,这个算子内部预置了多种“任务模式”,用户无需从零编写 Prompt,只需填空即可:
33. Sentiment Analysis (情感分析):自动将文本评价(如客户反馈)标记为 Positive, Negative, Neutral,还可以输出具体的情感分数。
34. Classification (分类):根据预定义的类别列表(如“产品缺陷”、“物流问题”、“客服态度”),自动对文本行进行归类。支持单选或多选。
35. Translation (翻译):利用 LLM 强大的多语言能力,将任意语言的文本列翻译为目标语言。
36. Summarization (摘要):针对长文本(如一篇新闻、一段会议记录),生成简短的总结。
37. Entity Extraction (实体提取):从非结构化文本中提取特定信息(如人名、合同金额、日期、法律条款),并将其结构化为 JSON 或单独的列。
38. 自定义模式 (Custom Prompt):如果上述模版不满足需求,用户可以使用“Free-form”模式,编写完全自定义的 Prompt,甚至结合 Few-shot Learning(给模型几个示例)来处理复杂逻辑。
向量化算子:Text to Embeddings (文本转向量)
这是构建 RAG (Retrieval-Augmented Generation) 和 语义搜索 (Semantic Search) 应用的基础算子。
39. 文本转换为向量 (Vector/Embeddings):转换后的向量通常是一个浮点数数组(如 [0.12, -0.98, ...])。这些向量会被存入 Ontology(本体)中,用于支持后续的语义搜索(例如:用户搜“哪里有好吃的面条”,系统能匹配到“推荐这家拉面馆”的记录,即使没有关键词匹配)。
模型通常支持 OpenAI 的 text-embedding-ada-002 或 Palantir 内部托管的其他 Embedding 模型。
辅助开发功能包含AIP Assist / Generate (AI 辅助生成)
这不是一个严格的数据处理算子,而是嵌入在 Pipeline Builder 界面中的 AI 助手,但它极大地改变了算子的使用方式。
40. Regex Generation (正则生成):不再需要自己写复杂的正则表达式。只需对 AI 说:“提取这段话里的所有邮箱地址”,它会自动生成一个标准的 Regex Extract 算子配置。
41. SQL/Expression Generation (表达式生成):可以用自然语言描述逻辑(例如:“把日期格式化为 YYYY-MM,如果为空则填入 'Unknown'”),AI 会自动编写出对应的 Spark SQL 表达式。
非结构化数据算子 (Vision & Document Intelligence)
42. Extract Text from PDF / Image (OCR):使用OCR识别或视觉模型从 PDF 文档和图片中提取文字。这是将非结构化文件喂给 Use LLM 算子的前置步骤。
43. Extract Layout-aware Content (版面分析):更高级的提取,能理解文档的标题、段落和表格结构,通常用于处理复杂的金融报表或合同。
输出与变更捕获 (Output & CDC)
44. Change Data Capture (CDC): 变更数据捕获。虽然通常是通过 Join 逻辑构建的,但在某些模版中,会有专门的逻辑来计算 Added, Removed, Modified 的行。
45. Output / Writeback: 输出节点。定义数据最终保存到 Foundry 的位置、数据集名称、分区策略(Partitioning)以及是否增量更新。
三、列表达式算子(Expressions)
在Pipeline Builder的“AddColumn”或“Filter”面板中,隐藏着一个包含200-300+种函数的表达式库。这些算子支持名为Foundry Expression Language的语法(高度兼容SQL和Spark语法)。
包括字符串处理算子(String Manipulation),处理脏数据最常用的类别如下
基础处理:
46. lower(col)/upper(col):大小写转换。
47. trim(col)/ltrim/rtrim:去除空格。
48. length(col):计算长度。
49. reverse(col):字符串反转。
50. initcap(col): 首字母大写 (如 "john doe" -> "John Doe")。
高级提取与替换:
51. substring(col,start,length):截取子串。
52. replace(col,search,replace):文本替换。
53. split(col,delimiter):将字符串按分隔符切割成数组。
54. concat(col1,col2,...)或col1||col2:字符串拼接。
正则表达式(Regex):
55. regex_extract(col,pattern,index):这是最强大的文本清洗算子。允许用户编写Regex提取特定模式(如提取邮件地址、电话号码)。
56. regex_replace(col,pattern,replacement):按模式替换。
57. rlike(col,pattern):正则匹配判断(返回Boolean)。
日期与时间算子,Foundry有极其强调时区处理,因此这部分算子非常丰富。
当前时间:
58. current_date():当前日期。
59. current_timestamp():当前时间戳。
格式转换:
60. to_date(col,format):字符串转日期。
61. date_format(col,format):日期转字符串(如"yyyy-MM-dd")。
62. unix_timestamp(col):转为Unix秒数。
日期计算:
63. date_add(col,days)/date_sub(col,days):加减天数。
64. datediff(end,start):计算两个日期的差值。
65. months_between(date1,date2):计算月数差。
66. add_months(date,num):加减月份。
67. datediff(end_date, start_date): 计算相差天数。
68. months_between(date1, date2): 计算相差月数。
69. next_day(date, dayOfWeek): 下一个周几的日期。
70. last_day(date): 当月最后一天。
部分提取:
71. year(col),month(col),dayofmonth(col)
72. hour(col),minute(col),second(col)。
73. dayofweek(col):返回星期几(通常周日为1)。
74. trunc(date,format):日期截断(例如截断到月初)。
75. weekofyear(col): 一年中的第几周。
数学与统计算子类
基础运算:+,-,*,/,%(取模)。
舍入与截断:
76. round(col,scale):四舍五入。
77. floor(col):向下取整。
78. ceil(col):向上取整。
高级数学:
79. abs(col):绝对值。
80. pow(base,exponent):幂运算。
81. sqrt(col):开方。
82. log(col)/exp(col):对数与指数。
83. exp(col): e 的指数。
空值处理数学:
84. nanvl(col,default):处理NaN值。
85. 极值:
86. greatest(col1, col2, ...): 返回一行中多列的最大值。
87. least(col1, col2, ...): 返回一行中多列的最小值。
逻辑与条件控制类
这是编写业务逻辑的核心。
条件判断:
88. CASE WHEN condition THEN result ELSE other END:这是SQL逻辑的灵魂,Pipeline Builder完美支持。
89. if(condition,true_val,false_val):简化的IF逻辑。
空值处理:
90. coalesce(col1,col2,...):返回第一个非空值。非常重要,用于填充默认值。
91. isnull(col)/isnotnull(col):判断是否为空。
92. nvl(col,default):类似于coalesce的简化版。
复杂类型算子
Pipeline Builder区别于Excel的地方在于它对非结构化数据的支持。
数组操作:
93. array_contains(col,value):判断数组是否包含某值 (True/False)。
94. size(col):计算数组长度。
95. array_join(col,delimiter):将数组合并为字符串。
96. element_at(col,index):获取数组特定位置的元素。(Spark 中索引通常从 1 开始)。
97. array_distinct(col):数组内去重。
98. array_intersect(col1,col2):计算数组交集。
99. array_sort(array_col): 数组排序。
100. array_union(arr1, arr2): 数组并集。
101. slice(array_col, start, length): 数组切片。
结构体(Struct)操作:
102. struct(col1,col2):将多列打包成一个对象列。创建结构体。
103. col.field:点号语法访问结构体内部字段。
JSON处理:
104. get_json_object(col,path):从JSON字符串中提取值。
105. from_json(col,schema):解析JSON。
聚合函数类
通常用于Group By节点,但也可用在Window函数中。
基础:
106. count_distinct。
107. count(*) / count(col)
108. sum(col)
109. avg(col)
110. min(col) / max(col)
111. first(col) / last(col)
统计:
112. stddev(标准差)
113. variance(方差)
114. corr(相关系数)。
集合:
115. collect_list(聚合为列表,不去重)
116. collect_set(聚合为列表,去重)。
哈希与加密 (Hashing & Cryptography)
117. md5(col)
118. sha1(col)
119. sha2(col, 256)
120. hash(col): 生成一个整数哈希值。
地理空间算子
这是Palantir的特色强项,用于处理地图数据。
121. geo_distance(lat1,long1,lat2,long2):计算两点距离。
122. h3_token_to_lat_long/lat_long_to_h3:UberH3索引转换(用于六边形网格聚合)。
123. wkt_parse:解析Well-Known Text地理格式。
总结来看,Palantir Pipeline Builder 的强大精髓在于:将 Apache Spark 的硬核算力封装于极致的低代码可视化界面中,把复杂、异构的数据加工逻辑抽象成可视化、可追溯、可协同的数据生产线,让业务和工程团队像搭积木一样快速构建、调试并治理企业级数据流程。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-11-27
从 Tool 到 Skill:Deep Agents 正在重新定义通用 AI Agent 的“工作方式”
2025-11-27
哪里不对点哪里!Nano Banana Pro 和 Lovart 的进阶玩法,4 个落地场景(附prompt)
2025-11-27
如何通俗的理解AI Agent的工作流?
2025-11-27
开源书分享:RAG实践手册:构建知识库和问答系统的实战指南(可下载)
2025-11-27
Ilya重磅发声:Scaling时代终结!自曝不再感受AGI
2025-11-27
覆盖430家权威机构数据源,Skywork专业数据模式赋能高效AI生产力平台
2025-11-27
ChatGPT 完成重大功能迭代!
2025-11-26
一文详解 | 从了解到集成,轻松为您的应用选择理想的图像生成模型
2025-09-19
2025-10-02
2025-09-16
2025-10-26
2025-09-08
2025-09-17
2025-09-29
2025-09-14
2025-10-07
2025-09-30
2025-11-27
2025-11-25
2025-11-25
2025-11-25
2025-11-23
2025-11-19
2025-11-19
2025-11-19