99from enum import Enum
1010from typing import Any , Dict , List , Optional , Union
1111import re
12+ from ssl import SSLContext
1213
1314import lz4 .frame
1415import pyarrow
@@ -47,6 +48,7 @@ def build_queue(
4748 t_row_set : TRowSet ,
4849 arrow_schema_bytes : bytes ,
4950 max_download_threads : int ,
51+ ssl_context : SSLContext ,
5052 lz4_compressed : bool = True ,
5153 description : Optional [List [List [Any ]]] = None ,
5254 ) -> ResultSetQueue :
@@ -60,6 +62,7 @@ def build_queue(
6062 lz4_compressed (bool): Whether result data has been lz4 compressed.
6163 description (List[List[Any]]): Hive table schema description.
6264 max_download_threads (int): Maximum number of downloader thread pool threads.
65+ ssl_context (SSLContext): SSLContext object for CloudFetchQueue
6366
6467 Returns:
6568 ResultSetQueue
@@ -82,12 +85,13 @@ def build_queue(
8285 return ArrowQueue (converted_arrow_table , n_valid_rows )
8386 elif row_set_type == TSparkRowSetType .URL_BASED_SET :
8487 return CloudFetchQueue (
85- arrow_schema_bytes ,
88+ schema_bytes = arrow_schema_bytes ,
8689 start_row_offset = t_row_set .startRowOffset ,
8790 result_links = t_row_set .resultLinks ,
8891 lz4_compressed = lz4_compressed ,
8992 description = description ,
9093 max_download_threads = max_download_threads ,
94+ ssl_context = ssl_context ,
9195 )
9296 else :
9397 raise AssertionError ("Row set type is not valid" )
@@ -133,6 +137,7 @@ def __init__(
133137 self ,
134138 schema_bytes ,
135139 max_download_threads : int ,
140+ ssl_context : SSLContext ,
136141 start_row_offset : int = 0 ,
137142 result_links : Optional [List [TSparkArrowResultLink ]] = None ,
138143 lz4_compressed : bool = True ,
@@ -155,6 +160,7 @@ def __init__(
155160 self .result_links = result_links
156161 self .lz4_compressed = lz4_compressed
157162 self .description = description
163+ self ._ssl_context = ssl_context
158164
159165 logger .debug (
160166 "Initialize CloudFetch loader, row set start offset: {}, file list:" .format (
@@ -169,7 +175,10 @@ def __init__(
169175 )
170176 )
171177 self .download_manager = ResultFileDownloadManager (
172- result_links or [], self .max_download_threads , self .lz4_compressed
178+ links = result_links or [],
179+ max_download_threads = self .max_download_threads ,
180+ lz4_compressed = self .lz4_compressed ,
181+ ssl_context = self ._ssl_context ,
173182 )
174183
175184 self .table = self ._create_next_table ()
0 commit comments