Script to demonstrate reading parquet.
This commit is contained in:
		
							parent
							
								
									9cd0954288
								
							
						
					
					
						commit
						90fe976b26
					
				
							
								
								
									
										17
									
								
								examples/pyarrow_reading.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								examples/pyarrow_reading.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | import pyarrow.dataset as ds | ||||||
|  | import pyarrow as pa | ||||||
|  | # A pyarrow dataset abstracts reading, writing, or filtering a parquet file. It does not read dataa into memory.  | ||||||
|  | #dataset = ds.dataset(pathlib.Path('/gscratch/comdata/output/reddit_submissions_by_subreddit.parquet/'), format='parquet', partitioning='hive') | ||||||
|  | dataset = ds.dataset('/gscratch/comdata/output/reddit_submissions_by_subreddit.parquet/', format='parquet', partitioning='hive') | ||||||
|  | 
 | ||||||
|  | # let's get all the comments to two subreddits: | ||||||
|  | subreddits_to_pull = ['seattle','seattlewa'] | ||||||
|  | 
 | ||||||
|  | # a table is a low-level structured data format.  This line pulls data into memory. Setting metadata_n_threads > 1 gives a little speed boost. | ||||||
|  | table = dataset.to_table(filter = ds.field('subreddit').isin(subreddits_to_pull), columns=['id','subreddit','CreatedAt','author','ups','downs','score','subreddit_id','stickied','title','url','is_self','selftext']) | ||||||
|  | 
 | ||||||
|  | # Since data from just these 2 subreddits fits in memory we can just turn our table into a pandas dataframe. | ||||||
|  | df = table.to_pandas() | ||||||
|  | 
 | ||||||
|  | # We should save this smaller dataset so we don't have to wait 15 min to pull from parquet next time. | ||||||
|  | df.to_csv("mydataset.csv") | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user