2017-05-19 54 views
5

Czy istnieje sposób na odczyt tabeli z adresu sieciowego lub z zewnętrznego polecenia runpipe? Wydaje się, że DataFrame.readtable obsługuje tylko czytanie z pliku.Julia można odczytać ze strumienia zamiast z pliku

Na przykład w R mogliśmy zrobić:

df = read.table(url("http://example.com/data.txt")) 

x = read.table(pipe("zcat data.txt | sed /^#/d | cut -f '11-13'"), colClasses=c("integer","integer","integer"), fill=TRUE, row.names=NULL) 

Odpowiedz

7
using DataFrames, Requests 

julia> resp = get("https://data.cityofnewyork.us/api/views/kku6-nxdu/rows.csv?accessType=DOWNLOAD") 
Response(200 OK, 17 headers, 27350 bytes in body) 

julia> tbl = readtable(IOBuffer(resp.data)); 

julia> names(tbl) 
46-element Array{Symbol,1}: 
:JURISDICTION_NAME     
:COUNT_PARTICIPANTS     
:COUNT_FEMALE      
:PERCENT_FEMALE      
:COUNT_MALE       
:PERCENT_MALE      
:COUNT_GENDER_UNKNOWN    
:PERCENT_GENDER_UNKNOWN    
:COUNT_GENDER_TOTAL     
:PERCENT_GENDER_TOTAL    
:COUNT_PACIFIC_ISLANDER    
:PERCENT_PACIFIC_ISLANDER   
:COUNT_HISPANIC_LATINO    
:PERCENT_HISPANIC_LATINO    
:COUNT_AMERICAN_INDIAN    
:PERCENT_AMERICAN_INDIAN    
:COUNT_ASIAN_NON_HISPANIC   
⋮         
:PERCENT_PERMANENT_RESIDENT_ALIEN 
:COUNT_US_CITIZEN     
:PERCENT_US_CITIZEN     
:COUNT_OTHER_CITIZEN_STATUS   
:PERCENT_OTHER_CITIZEN_STATUS  
:COUNT_CITIZEN_STATUS_UNKNOWN  
:PERCENT_CITIZEN_STATUS_UNKNOWN  
:COUNT_CITIZEN_STATUS_TOTAL   
:PERCENT_CITIZEN_STATUS_TOTAL  
:COUNT_RECEIVES_PUBLIC_ASSISTANCE 
:PERCENT_RECEIVES_PUBLIC_ASSISTANCE 
:COUNT_NRECEIVES_PUBLIC_ASSISTANCE 
:PERCENT_NRECEIVES_PUBLIC_ASSISTANCE 
:COUNT_PUBLIC_ASSISTANCE_UNKNOWN  
:PERCENT_PUBLIC_ASSISTANCE_UNKNOWN 
:COUNT_PUBLIC_ASSISTANCE_TOTAL  
:PERCENT_PUBLIC_ASSISTANCE_TOTAL 

julia> eltypes(tbl) 
46-element Array{Type,1}: 
Int64 
Int64 
Int64 
Float64 
Int64 
Float64 
Int64 
Int64 
Int64 
Int64 
Int64 
Float64 
Int64 
Float64 
Int64 
Float64 
Int64 
⋮  
Float64 
Int64 
Float64 
Int64 
Float64 
Int64 
Int64 
Int64 
Int64 
Int64 
Float64 
Int64 
Float64 
Int64 
Int64 
Int64 
Int64