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
d11315dd
Commit
d11315dd
authored
Aug 28, 2026
by
chenyuanjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kafka实时消费-latest模式下offset偏差过大特殊情况处理
parent
22427ae9
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
9 additions
and
5 deletions
+9
-5
kafka_flow_asin_detail_to_doris.py
Pyspark_job/my_kafka/kafka_flow_asin_detail_to_doris.py
+2
-2
templates.py
Pyspark_job/utils/templates.py
+7
-3
No files found.
Pyspark_job/my_kafka/kafka_flow_asin_detail_to_doris.py
View file @
d11315dd
...
@@ -29,7 +29,7 @@ NEED_FILTER_CATEGORIES = (
...
@@ -29,7 +29,7 @@ NEED_FILTER_CATEGORIES = (
class
KafkaFlowAsinDetail
(
Templates
):
class
KafkaFlowAsinDetail
(
Templates
):
def
__init__
(
self
,
site_name
=
'us'
,
date_type
=
"month"
,
date_info
=
'2026-03'
,
consumer_type
=
'history'
,
test_flag
=
'test'
,
batch_size
=
10
0000
):
def
__init__
(
self
,
site_name
=
'us'
,
date_type
=
"month"
,
date_info
=
'2026-03'
,
consumer_type
=
'history'
,
test_flag
=
'test'
,
batch_size
=
2
0000
):
super
()
.
__init__
()
super
()
.
__init__
()
self
.
site_name
=
site_name
self
.
site_name
=
site_name
self
.
date_type
=
date_type
self
.
date_type
=
date_type
...
@@ -1308,5 +1308,5 @@ if __name__ == '__main__':
...
@@ -1308,5 +1308,5 @@ if __name__ == '__main__':
test_flag
=
sys
.
argv
[
5
]
test_flag
=
sys
.
argv
[
5
]
else
:
else
:
test_flag
=
'normal'
test_flag
=
'normal'
handle_obj
=
KafkaFlowAsinDetail
(
site_name
=
site_name
,
date_type
=
date_type
,
date_info
=
date_info
,
consumer_type
=
consumer_type
,
test_flag
=
test_flag
,
batch_size
=
20000
0
)
handle_obj
=
KafkaFlowAsinDetail
(
site_name
=
site_name
,
date_type
=
date_type
,
date_info
=
date_info
,
consumer_type
=
consumer_type
,
test_flag
=
test_flag
,
batch_size
=
20000
)
handle_obj
.
run_kafka
()
handle_obj
.
run_kafka
()
Pyspark_job/utils/templates.py
View file @
d11315dd
...
@@ -120,7 +120,7 @@ class Templates(object):
...
@@ -120,7 +120,7 @@ class Templates(object):
def
create_kafka_df_object
(
self
,
consumer_type
=
str
(),
topic_name
=
str
(),
starting_offsets_json
=
str
(),
ending_offsets_json
=
str
(),
schema
=
StructType
()):
def
create_kafka_df_object
(
self
,
consumer_type
=
str
(),
topic_name
=
str
(),
starting_offsets_json
=
str
(),
ending_offsets_json
=
str
(),
schema
=
StructType
()):
if
consumer_type
==
"latest"
:
if
consumer_type
==
"latest"
:
# 流处理
# 流处理
kafka_
df
=
self
.
spark
.
readStream
\
kafka_
stream_reader
=
self
.
spark
.
readStream
\
.
format
(
"kafka"
)
\
.
format
(
"kafka"
)
\
.
option
(
"kafka.bootstrap.servers"
,
self
.
kafka_servers
)
\
.
option
(
"kafka.bootstrap.servers"
,
self
.
kafka_servers
)
\
.
option
(
"subscribe"
,
topic_name
)
\
.
option
(
"subscribe"
,
topic_name
)
\
...
@@ -129,8 +129,12 @@ class Templates(object):
...
@@ -129,8 +129,12 @@ class Templates(object):
.
option
(
"kafka.sasl.jaas.config"
,
.
option
(
"kafka.sasl.jaas.config"
,
f
'org.apache.kafka.common.security.plain.PlainLoginModule required username="{self.kafka_username}" password="{self.kafka_password}";'
)
\
f
'org.apache.kafka.common.security.plain.PlainLoginModule required username="{self.kafka_username}" password="{self.kafka_password}";'
)
\
.
option
(
"startingOffsets"
,
consumer_type
)
\
.
option
(
"startingOffsets"
,
consumer_type
)
\
.
option
(
"failOnDataLoss"
,
"false"
)
\
.
option
(
"failOnDataLoss"
,
"false"
)
.
load
()
\
# 断点与topic最新offset差距过大时,避免单个触发批次读取过多数据导致阻塞/失败风险,按批次上限分批追平
max_offsets_per_trigger
=
getattr
(
self
,
'batch_size'
,
None
)
if
max_offsets_per_trigger
:
kafka_stream_reader
=
kafka_stream_reader
.
option
(
"maxOffsetsPerTrigger"
,
max_offsets_per_trigger
)
kafka_df
=
kafka_stream_reader
.
load
()
\
.
select
(
F
.
from_json
(
F
.
col
(
"value"
)
.
cast
(
"string"
),
schema
=
schema
)
.
alias
(
"data"
))
\
.
select
(
F
.
from_json
(
F
.
col
(
"value"
)
.
cast
(
"string"
),
schema
=
schema
)
.
alias
(
"data"
))
\
.
select
(
"data.*"
)
.
select
(
"data.*"
)
return
kafka_df
return
kafka_df
...
...
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