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
8bdae1ea
Commit
8bdae1ea
authored
Sep 16, 2026
by
chenyuanjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
asin详情同步-兼容历史字段缺失
parent
320d442c
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
12 deletions
+36
-12
ods_asin_detail.py
Pyspark_job/sqoop_import/ods_asin_detail.py
+36
-12
No files found.
Pyspark_job/sqoop_import/ods_asin_detail.py
View file @
8bdae1ea
...
...
@@ -71,6 +71,30 @@ if __name__ == '__main__':
check_syn
(
engine
=
engine
)
# 源表(PG爬虫表)这7个字段是分阶段才有的,早于对应月份的源表没有这几列,
# 直接select会报"列不存在",历史回溯同步时按date_info降级为对应类型的NULL占位
has_2025_cols
=
date_info
>=
'2025-01'
# bundles_this_asins_json/video_m3u8_url/result_list_json/bundle_asin_component_json/review_json_list/fbm_delivery_price
has_2026_cols
=
date_info
>=
'2026-01'
# amazon_label/landing_asin/sub_title
bundles_this_asins_json_expr
=
(
"REPLACE(REPLACE(REPLACE(bundles_this_asins_json, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS bundles_this_asins_json"
if
has_2025_cols
else
"CAST(NULL AS VARCHAR) AS bundles_this_asins_json"
)
video_m3u8_url_expr
=
(
"REPLACE(REPLACE(REPLACE(video_m3u8_url, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS video_m3u8_url"
if
has_2025_cols
else
"CAST(NULL AS VARCHAR) AS video_m3u8_url"
)
result_list_json_expr
=
(
"REPLACE(REPLACE(REPLACE(result_list_json, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS result_list_json"
if
has_2025_cols
else
"CAST(NULL AS VARCHAR) AS result_list_json"
)
bundle_asin_component_json_expr
=
(
"REPLACE(REPLACE(REPLACE(bundle_asin_component_json, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS bundle_asin_component_json"
if
has_2025_cols
else
"CAST(NULL AS VARCHAR) AS bundle_asin_component_json"
)
review_json_list_expr
=
(
"REPLACE(REPLACE(REPLACE(review_json_list, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS review_json_list"
if
has_2025_cols
else
"CAST(NULL AS VARCHAR) AS review_json_list"
)
fbm_delivery_price_expr
=
"fbm_delivery_price"
if
has_2025_cols
else
"CAST(NULL AS NUMERIC) AS fbm_delivery_price"
amazon_label_expr
=
(
"REPLACE(REPLACE(REPLACE(amazon_label, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS amazon_label"
if
has_2026_cols
else
"CAST(NULL AS VARCHAR) AS amazon_label"
)
landing_asin_expr
=
(
"REPLACE(REPLACE(REPLACE(landing_asin, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS landing_asin"
if
has_2026_cols
else
"CAST(NULL AS VARCHAR) AS landing_asin"
)
sub_title_expr
=
(
"REPLACE(REPLACE(REPLACE(sub_title, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS sub_title"
if
has_2026_cols
else
"CAST(NULL AS VARCHAR) AS sub_title"
)
query
=
f
"""
SELECT
id,
...
...
@@ -138,18 +162,18 @@ if __name__ == '__main__':
REPLACE(REPLACE(REPLACE(img_list, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS img_list,
REPLACE(REPLACE(REPLACE(variat_list, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS variat_list,
REPLACE(REPLACE(REPLACE(parent_asin, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS parent_asin,
REPLACE(REPLACE(REPLACE(bundles_this_asins_json, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS bundles_this_asins_json
,
REPLACE(REPLACE(REPLACE(video_m3u8_url, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS video_m3u8_url
,
REPLACE(REPLACE(REPLACE(result_list_json, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS result_list_json
,
REPLACE(REPLACE(REPLACE(bundle_asin_component_json, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS bundle_asin_component_json
,
REPLACE(REPLACE(REPLACE(review_json_list, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS review_json_list
,
fbm_delivery_price
,
REPLACE(REPLACE(REPLACE(amazon_label, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS amazon_label
,
REPLACE(REPLACE(REPLACE(landing_asin, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS landing_asin
,
REPLACE(REPLACE(REPLACE(sub_title, E'
\n
',' '), E'
\r
',' '), E'
\t
',' ') AS sub_title
FROM {import_table}
WHERE 1=1 AND
\
$CONDITIONS
"""
{bundles_this_asins_json_expr}
,
{video_m3u8_url_expr}
,
{result_list_json_expr}
,
{bundle_asin_component_json_expr}
,
{review_json_list_expr}
,
{fbm_delivery_price_expr}
,
{amazon_label_expr}
,
{landing_asin_expr}
,
{sub_title_expr}
FROM {import_table}
WHERE 1=1 AND
\
$CONDITIONS
"""
engine
.
sqoop_raw_import
(
# query=f"SELECT {cols} FROM {import_table} WHERE 1=1 and \$CONDITIONS",
...
...
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