@@ -123,7 +123,7 @@ def orderByExpr(self, reverse: bool = False) -> Union[Column, List[Column]]:
123
123
"""
124
124
125
125
@abstractmethod
126
- def rangeExpr (self , reverse : bool = False ) -> Column :
126
+ def rangeExpr (self , reverse : bool = False ) -> Union [ Column , List [ Column ]] :
127
127
"""
128
128
Gets an expression appropriate for performing range operations on the :class:`TSDF` records.
129
129
@@ -176,7 +176,7 @@ def renamed(self, new_name: str) -> "TSIndex":
176
176
self .__name = new_name
177
177
return self
178
178
179
- def orderByExpr (self , reverse : bool = False ) -> Column :
179
+ def orderByExpr (self , reverse : bool = False ) -> Union [ Column , List [ Column ]] :
180
180
expr = sfn .col (self .colname )
181
181
return self ._reverseOrNot (expr , reverse )
182
182
@@ -211,7 +211,7 @@ def __init__(self, ts_idx: StructField) -> None:
211
211
def unit (self ) -> Optional [TimeUnits ]:
212
212
return None
213
213
214
- def rangeExpr (self , reverse : bool = False ) -> Column :
214
+ def rangeExpr (self , reverse : bool = False ) -> Union [ Column , List [ Column ]] :
215
215
return self .orderByExpr (reverse )
216
216
217
217
@@ -231,7 +231,7 @@ def __init__(self, ts_idx: StructField) -> None:
231
231
def unit (self ) -> Optional [TimeUnits ]:
232
232
return TimeUnits .SECONDS
233
233
234
- def rangeExpr (self , reverse : bool = False ) -> Column :
234
+ def rangeExpr (self , reverse : bool = False ) -> Union [ Column , List [ Column ]] :
235
235
# cast timestamp to double (fractional seconds since epoch)
236
236
expr = sfn .col (self .colname ).cast ("double" )
237
237
return self ._reverseOrNot (expr , reverse )
@@ -253,7 +253,7 @@ def __init__(self, ts_idx: StructField) -> None:
253
253
def unit (self ) -> Optional [TimeUnits ]:
254
254
return TimeUnits .DAYS
255
255
256
- def rangeExpr (self , reverse : bool = False ) -> Column :
256
+ def rangeExpr (self , reverse : bool = False ) -> Union [ Column , List [ Column ]] :
257
257
# convert date to number of days since the epoch
258
258
expr = sfn .datediff (sfn .col (self .colname ), sfn .lit ("1970-01-01" ).cast ("date" ))
259
259
return self ._reverseOrNot (expr , reverse )
@@ -350,12 +350,12 @@ def ts_component(self, component_index: int) -> str:
350
350
"""
351
351
return self .component (self .ts_components [component_index ].colname )
352
352
353
- def orderByExpr (self , reverse : bool = False ) -> Column :
353
+ def orderByExpr (self , reverse : bool = False ) -> Union [ Column , List [ Column ]] :
354
354
# build an expression for each TS component, in order
355
355
exprs = [sfn .col (self .component (comp .colname )) for comp in self .ts_components ]
356
356
return self ._reverseOrNot (exprs , reverse )
357
357
358
- def rangeExpr (self , reverse : bool = False ) -> Column :
358
+ def rangeExpr (self , reverse : bool = False ) -> Union [ Column , List [ Column ]] :
359
359
return self .primary_ts_idx .rangeExpr (reverse )
360
360
361
361
@@ -366,7 +366,7 @@ class ParsedTSIndex(CompositeTSIndex, ABC):
366
366
"""
367
367
368
368
def __init__ (self , ts_idx : StructField , src_str_col : str , parsed_col : str ) -> None :
369
- super ().__init__ (ts_idx , primary_ts_col = parsed_col )
369
+ super ().__init__ (ts_idx , parsed_col )
370
370
src_str_field = self .struct [src_str_col ]
371
371
if not isinstance (src_str_field .dataType , StringType ):
372
372
raise TypeError (
@@ -390,9 +390,8 @@ def validate(self, df_schema: StructType) -> None:
390
390
composite_idx_type : StructType = cast (
391
391
StructType , df_schema [self .colname ].dataType
392
392
)
393
- assert (
394
- self .__src_str_col in composite_idx_type
395
- ), f"The src_str_col column { self .src_str_col } does not exist in the composite field { composite_idx_type } "
393
+ assert (self .__src_str_col in composite_idx_type .fieldNames ()), \
394
+ f"The src_str_col column { self .src_str_col } does not exist in the composite field { composite_idx_type } "
396
395
# make sure it's StringType
397
396
src_str_field_type = composite_idx_type [self .__src_str_col ].dataType
398
397
assert isinstance (
@@ -412,7 +411,7 @@ def __init__(self, ts_idx: StructField, src_str_col: str, parsed_col: str) -> No
412
411
f"ParsedTimestampIndex must be of TimestampType, but given ts_col { self .primary_ts_idx .colname } has type { self .primary_ts_idx .dataType } "
413
412
)
414
413
415
- def rangeExpr (self , reverse : bool = False ) -> Column :
414
+ def rangeExpr (self , reverse : bool = False ) -> Union [ Column , List [ Column ]] :
416
415
# cast timestamp to double (fractional seconds since epoch)
417
416
expr = sfn .col (self .primary_ts_col ).cast ("double" )
418
417
return self ._reverseOrNot (expr , reverse )
@@ -430,7 +429,7 @@ def __init__(self, ts_idx: StructField, src_str_col: str, parsed_col: str) -> No
430
429
f"ParsedDateIndex must be of DateType, but given ts_col { self .primary_ts_idx .colname } has type { self .primary_ts_idx .dataType } "
431
430
)
432
431
433
- def rangeExpr (self , reverse : bool = False ) -> Column :
432
+ def rangeExpr (self , reverse : bool = False ) -> Union [ Column , List [ Column ]] :
434
433
# convert date to number of days since the epoch
435
434
expr = sfn .datediff (
436
435
sfn .col (self .primary_ts_col ), sfn .lit ("1970-01-01" ).cast ("date" )
@@ -522,7 +521,7 @@ class TSSchema(WindowBuilder):
522
521
Schema type for a :class:`TSDF` class.
523
522
"""
524
523
525
- def __init__ (self , ts_idx : TSIndex , series_ids : Collection [str ] = None ) -> None :
524
+ def __init__ (self , ts_idx : TSIndex , series_ids : Optional [ Collection [str ]] ) -> None :
526
525
self .__ts_idx = ts_idx
527
526
if series_ids :
528
527
self .__series_ids = list (series_ids )
@@ -558,9 +557,7 @@ def __str__(self) -> str:
558
557
Series IDs: { self .series_ids } """
559
558
560
559
@classmethod
561
- def fromDFSchema (
562
- cls , df_schema : StructType , ts_col : str , series_ids : Collection [str ] = None
563
- ) -> "TSSchema" :
560
+ def fromDFSchema (cls , df_schema : StructType , ts_col : str , series_ids : Optional [Collection [str ]]) -> "TSSchema" :
564
561
# construct a TSIndex for the given ts_col
565
562
ts_idx = SimpleTSIndex .fromTSCol (df_schema [ts_col ])
566
563
return cls (ts_idx , series_ids )
0 commit comments