Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
Amazon-Selection-Data
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abel_cjy
Amazon-Selection-Data
Commits
890cf95f
Commit
890cf95f
authored
Jul 10, 2026
by
hejiangming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加搜索词市场筛选维度字段
parent
7ef1fd6b
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
1 deletions
+14
-1
dwt_aba_st_analytics.py
Pyspark_job/dwt/dwt_aba_st_analytics.py
+0
-0
dwt_aba_st_analytics.py
Pyspark_job/sqoop_export/dwt_aba_st_analytics.py
+14
-1
No files found.
Pyspark_job/dwt/dwt_aba_st_analytics.py
View file @
890cf95f
This diff is collapsed.
Click to expand it.
Pyspark_job/sqoop_export/dwt_aba_st_analytics.py
View file @
890cf95f
...
...
@@ -197,7 +197,11 @@ if __name__ == '__main__':
# 同 st_attribute_label:copy 表先 ALTER 成 VARCHAR 让 sqoop 写字符串,交换前再 string_to_array 转回 VARCHAR[]
"peak_month"
,
# 常年可卖标记:标量 int,sqoop 直写,无需中转
"all_year_text_flag"
"all_year_text_flag"
,
# 搜索词市场筛选维度:Hive 端是清洗后 JSON STRING(如 '{"Flavor":["Chocolate"]}'),PG 端是 jsonb
# Sqoop 不能直接写 jsonb:copy 表先把该列 ALTER 成 varchar 让 sqoop 写字符串,
# 交换前再 ALTER 回 jsonb(USING ...::jsonb),同 st_attribute_label 的中转思路
"st_filter_refinements"
]
# 处理导出表
export_master_tb
=
f
"{export_base_tb}_{date_type}_{year_str}"
...
...
@@ -239,9 +243,14 @@ if __name__ == '__main__':
# copy 表继承自正式分区表(含 st_attribute_label VARCHAR[]),
# 但 Sqoop 不支持直接写入 PG 数组类型,必须先把 copy 表的该列临时改成 VARCHAR
# 等 Sqoop 完成后、分区交换之前,再 ALTER 回 VARCHAR[](见下方 exchange_pg_part_tb 前的处理)
# st_filter_refinements 在 master/copy 里是 jsonb 且带 DEFAULT '{}'::jsonb,
# Sqoop 不能写 jsonb → 先 DROP DEFAULT(避免改类型时默认值转换报错)再 ALTER 成 varchar
# USING st_filter_refinements::text 把 jsonb 显式转字符串;varchar 不限长,避免长 JSON 被截断
sql_alter_to_varchar
=
f
"""
ALTER TABLE {export_tb_copy} ALTER COLUMN st_attribute_label TYPE VARCHAR(200);
ALTER TABLE {export_tb_copy} ALTER COLUMN peak_month TYPE VARCHAR(200);
ALTER TABLE {export_tb_copy} ALTER COLUMN st_filter_refinements DROP DEFAULT;
ALTER TABLE {export_tb_copy} ALTER COLUMN st_filter_refinements TYPE VARCHAR USING st_filter_refinements::text;
"""
DBUtil
.
engine_exec_sql
(
engine
,
sql_alter_to_varchar
)
...
...
@@ -320,6 +329,10 @@ if __name__ == '__main__':
ALTER TABLE {export_tb_copy}
ALTER COLUMN peak_month TYPE VARCHAR[]
USING string_to_array(coalesce(peak_month, ''), ',')::varchar[];
ALTER TABLE {export_tb_copy}
ALTER COLUMN st_filter_refinements TYPE jsonb
USING st_filter_refinements::jsonb;
"""
DBUtil
.
engine_exec_sql
(
engine
,
sql_alter_back
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment