88# Toggle this flag to test spawn mode fix
99USE_SPAWN_MODE = True # Set to True to fix the Tahoe hang issue
1010
11- if __name__ == ' __main__' :
11+ if __name__ == " __main__" :
1212 if USE_SPAWN_MODE :
1313 print ("Using SPAWN mode (fix for Tahoe)" )
14- multiprocessing .set_start_method (' spawn' , force = True )
15- multiprocess .set_start_method (' spawn' , force = True )
14+ multiprocessing .set_start_method (" spawn" , force = True )
15+ multiprocess .set_start_method (" spawn" , force = True )
1616 else :
1717 print ("Using default fork mode (will hang on Tahoe)" )
1818
1919 # Create fake data
20- data = pd .DataFrame ({
21- 'record_id' : [f'id_{ i } ' for i in range (10 )],
22- 'feature_1' : [float (i ) for i in range (10 )],
23- 'feature_2' : [float (i * 2 ) for i in range (10 )],
24- 'event_time' : [time .time ()] * 10
25- })
20+ data = pd .DataFrame (
21+ {
22+ "record_id" : [f"id_{ i } " for i in range (10 )],
23+ "feature_1" : [float (i ) for i in range (10 )],
24+ "feature_2" : [float (i * 2 ) for i in range (10 )],
25+ "event_time" : [time .time ()] * 10 ,
26+ }
27+ )
2628
2729 # Setup SageMaker session
2830 sagemaker_session = sagemaker .Session ()
2931
3032 # Define feature group
31- feature_group_name = 'temp_delete_me'
32- feature_group = FeatureGroup (
33- name = feature_group_name ,
34- sagemaker_session = sagemaker_session
35- )
33+ feature_group_name = "temp_delete_me"
34+ feature_group = FeatureGroup (name = feature_group_name , sagemaker_session = sagemaker_session )
3635
3736 # Create feature definitions
3837 feature_group .load_feature_definitions (data_frame = data )
3938
4039 # Create feature group
4140 print ("Creating feature group..." )
4241 feature_group .create (
43- s3_uri = f' s3://{ sagemaker_session .default_bucket ()} /featurestore' ,
44- record_identifier_name = ' record_id' ,
45- event_time_feature_name = ' event_time' ,
42+ s3_uri = f" s3://{ sagemaker_session .default_bucket ()} /featurestore" ,
43+ record_identifier_name = " record_id" ,
44+ event_time_feature_name = " event_time" ,
4645 role_arn = sagemaker .get_execution_role (),
47- enable_online_store = True
46+ enable_online_store = True ,
4847 )
4948
5049 # Wait for feature group to be created (can take 1-2 minutes)
5857
5958 # This will hang on macOS Tahoe with USE_SPAWN_MODE=False
6059 print ("Starting ingest..." )
61- feature_group .ingest (
62- data_frame = data ,
63- max_workers = 2 ,
64- max_processes = 2 ,
65- wait = True
66- )
67- print ("Ingest completed!" )
60+ feature_group .ingest (data_frame = data , max_workers = 2 , max_processes = 2 , wait = True )
61+ print ("Ingest completed!" )
0 commit comments