Ignorar navegação

NYC Taxi & Limousine Commission - For-Hire Vehicle (FHV) trip records

NYC TLC Taxi FHV

Os registros de viagem em FHV (veículo para locação) incluem campos que capturam o número da licença de base despachada, a data e hora da retirada e a ID da localização da zona de táxi (arquivo de forma abaixo). Esses registros são gerados com base nos envios de Registro de viagem com FHV feitos pelas bases.

Volume e retenção

Este conjunto de dados está armazenado no formato Parquet. Há cerca de 500 milhões de linhas (5 GB) desde 2018.

Este conjunto de dados contém registros históricos acumulados de 2009 a 2018. Você pode usar as configurações de parâmetro no nosso SDK para buscar dados em um intervalo de tempo específico.

Local de armazenamento

Este conjunto de dados está armazenado na região Leste dos EUA do Azure. É recomendável alocar recursos de computação no Leste dos EUA para afinidade.

Informações adicionais

TLC (Comissão de Táxis e Limusines) de Nova York:

Os dados foram coletados e fornecidos à TLC (Comissão de Táxis e Limusines) de Nova York por provedores de tecnologia autorizados nos TPEP/LPEP (Programas de Melhoria de Táxi e Locação para Passageiros). Os dados de viagem não foram criados pela TLC. A TLC não fornece qualquer garantia quanto à precisão desses dados.

Informações adicionais sobre os dados de registro de viagem da TLC podem ser encontradas aqui e aqui.

Avisos

A MICROSOFT FORNECE O AZURE OPEN DATASETS NO ESTADO EM QUE SE ENCONTRA. A MICROSOFT NÃO OFERECE GARANTIAS OU COBERTURAS, EXPRESSAS OU IMPLÍCITAS, EM RELAÇÃO AO USO DOS CONJUNTOS DE DADOS. ATÉ O LIMITE PERMITIDO PELA LEGISLAÇÃO LOCAL, A MICROSOFT SE EXIME DE TODA A RESPONSABILIDADE POR DANOS OU PERDAS, INCLUSIVE DIRETOS, CONSEQUENTES, ESPECIAIS, INDIRETOS, ACIDENTAIS OU PUNITIVOS, RESULTANTES DO USO DOS CONJUNTOS DE DADOS.

Esse conjunto de dados é fornecido de acordo com os termos originais com que a Microsoft recebeu os dados de origem. O conjunto de dados pode incluir dados originados da Microsoft.

Access

Available inWhen to use
Azure Notebooks

Quickly explore the dataset with Jupyter notebooks hosted on Azure or your local machine.

Azure Databricks

Use this when you need the scale of an Azure managed Spark cluster to process the dataset.

Azure Synapse

Use this when you need the scale of an Azure managed Spark cluster to process the dataset.

Preview

dispatchBaseNum pickupDateTime dropOffDateTime puLocationId doLocationId srFlag puYear puMonth
B03157 6/30/2019 11:59:57 PM 7/1/2019 12:07:21 AM 264 null null 2019 6
B01667 6/30/2019 11:59:56 PM 7/1/2019 12:28:06 AM 264 null null 2019 6
B02849 6/30/2019 11:59:55 PM 7/1/2019 12:14:10 AM 264 null null 2019 6
B02249 6/30/2019 11:59:53 PM 7/1/2019 12:15:53 AM 264 null null 2019 6
B00887 6/30/2019 11:59:48 PM 7/1/2019 12:29:29 AM 264 null null 2019 6
B01626 6/30/2019 11:59:45 PM 7/1/2019 12:18:20 AM 264 null null 2019 6
B01259 6/30/2019 11:59:44 PM 7/1/2019 12:03:15 AM 264 null null 2019 6
B01145 6/30/2019 11:59:43 PM 7/1/2019 12:11:15 AM 264 null null 2019 6
B00887 6/30/2019 11:59:42 PM 7/1/2019 12:34:21 AM 264 null null 2019 6
B00821 6/30/2019 11:59:40 PM 7/1/2019 12:02:57 AM 264 null null 2019 6
Name Data type Unique Values (sample) Description
dispatchBaseNum string 1,144 B02510
B02764

O número da licença da base da TLC que despachou a viagem

doLocationId string 267 265
132

Zona de táxi da TLC em que a viagem terminou.

dropOffDateTime timestamp 57,110,352 2017-07-31 23:59:00
2017-10-15 00:44:34

A data e a hora do término da viagem.

pickupDateTime timestamp 111,270,396 2016-08-16 00:00:00
2016-08-17 00:00:00

A data e a hora do início da viagem.

puLocationId string 266 79
161

Zona de táxi da TLC em que a viagem iniciou.

puMonth int 12 1
12
puYear int 5 2018
2017
srFlag string 44 1
2

Indica se a viagem foi parte de uma rede de carona compartilhada oferecida por uma empresa de alto volume de FHV (por exemplo, Uber Pool, Lyft Line, etc.). Para viagens compartilhadas, o valor é 1. Para viagens não compartilhadas, este campo é nulo.

OBSERVAÇÃO: Para a maioria das empresas de alto volume de FHV, apenas as viagens compartilhadas que foram solicitadas E que corresponderam a outra solicitação de viagem compartilhada ao longo do percurso são sinalizadas. No entanto, a Lyft (números de licença de base B02510 + B02844) também sinaliza as viagens para as quais foi solicitada uma viagem compartilhada, mas não foi possível encontrar correspondência com outro passageiro para compartilhar a viagem – portanto, as viagens registradas com SR_Flag = 1 nessas duas bases podem indicar OU a primeira viagem em uma rede de viagens compartilhadas OU uma viagem para a qual foi solicitada uma viagem compartilhada, mas nenhuma correspondência foi encontrada. Os usuários devem prever uma grande quantidade de viagens compartilhadas com sucesso por meio da Lyft.

Select your preferred service:

Azure Notebooks

Azure Databricks

Azure Synapse

Azure Notebooks

Package: Language: Python Python
In [1]:
# This is a package in preview.
from azureml.opendatasets import NycTlcFhv

from datetime import datetime
from dateutil import parser


end_date = parser.parse('2018-06-06')
start_date = parser.parse('2018-05-01')
nyc_tlc = NycTlcFhv(start_date=start_date, end_date=end_date)
nyc_tlc_df = nyc_tlc.to_pandas_dataframe()
ActivityStarted, to_pandas_dataframe ActivityStarted, to_pandas_dataframe_in_worker Target paths: ['/puYear=2018/puMonth=5/', '/puYear=2018/puMonth=6/'] Looking for parquet files... Reading them into Pandas dataframe... Reading fhv/puYear=2018/puMonth=5/part-00087-tid-3759768514304694104-985150ea-1bd1-4f3d-b368-27cbe0c377b0-12952.c000.snappy.parquet under container nyctlc Reading fhv/puYear=2018/puMonth=6/part-00171-tid-3759768514304694104-985150ea-1bd1-4f3d-b368-27cbe0c377b0-13036.c000.snappy.parquet under container nyctlc Done. ActivityCompleted: Activity=to_pandas_dataframe_in_worker, HowEnded=Success, Duration=737522.49 [ms] ActivityCompleted: Activity=to_pandas_dataframe, HowEnded=Success, Duration=737620.1 [ms]
In [2]:
nyc_tlc_df.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 25142904 entries, 0 to 21089615 Data columns (total 6 columns): dispatchBaseNum object pickupDateTime datetime64[ns] dropOffDateTime datetime64[ns] puLocationId object doLocationId object srFlag object dtypes: datetime64[ns](2), object(4) memory usage: 1.3+ GB
In [1]:
# Pip install packages
import os, sys

!{sys.executable} -m pip install azure-storage-blob
!{sys.executable} -m pip install pyarrow
!{sys.executable} -m pip install pandas
In [2]:
# Azure storage access info
azure_storage_account_name = "azureopendatastorage"
azure_storage_sas_token = r""
container_name = "nyctlc"
folder_name = "fhv"
In [3]:
from azure.storage.blob import BlockBlobServicefrom azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

if azure_storage_account_name is None or azure_storage_sas_token is None:
    raise Exception(
        "Provide your specific name and key for your Azure Storage account--see the Prerequisites section earlier.")

print('Looking for the first parquet under the folder ' +
      folder_name + ' in container "' + container_name + '"...')
container_url = f"https://{azure_storage_account_name}.blob.core.windows.net/"
blob_service_client = BlobServiceClient(
    container_url, azure_storage_sas_token if azure_storage_sas_token else None)

container_client = blob_service_client.get_container_client(container_name)
blobs = container_client.list_blobs(folder_name)
sorted_blobs = sorted(list(blobs), key=lambda e: e.name, reverse=True)
targetBlobName = ''
for blob in sorted_blobs:
    if blob.name.startswith(folder_name) and blob.name.endswith('.parquet'):
        targetBlobName = blob.name
        break

print('Target blob to download: ' + targetBlobName)
_, filename = os.path.split(targetBlobName)
blob_client = container_client.get_blob_client(targetBlobName)
with open(filename, 'wb') as local_file:
    blob_client.download_blob().download_to_stream(local_file)
In [4]:
# Read the parquet file into Pandas data frame
import pandas as pd

print('Reading the parquet file into Pandas data frame')
df = pd.read_parquet(filename)
In [5]:
# you can add your filter at below
print('Loaded as a Pandas data frame: ')
df
In [6]:
 

Azure Databricks

Package: Language: Python Python
In [1]:
# This is a package in preview.
# You need to pip install azureml-opendatasets in Databricks cluster. https://docs.microsoft.com/en-us/azure/data-explorer/connect-from-databricks#install-the-python-library-on-your-azure-databricks-cluster
from azureml.opendatasets import NycTlcFhv

from datetime import datetime
from dateutil import parser


end_date = parser.parse('2018-06-06')
start_date = parser.parse('2018-05-01')
nyc_tlc = NycTlcFhv(start_date=start_date, end_date=end_date)
nyc_tlc_df = nyc_tlc.to_spark_dataframe()
ActivityStarted, to_spark_dataframe ActivityStarted, to_spark_dataframe_in_worker ActivityCompleted: Activity=to_spark_dataframe_in_worker, HowEnded=Success, Duration=27284.71 [ms] ActivityCompleted: Activity=to_spark_dataframe, HowEnded=Success, Duration=27288.78 [ms]
In [2]:
display(nyc_tlc_df.limit(5))
dispatchBaseNumpickupDateTimedropOffDateTimepuLocationIddoLocationIdsrFlagpuYearpuMonth
B028002018-05-08T13:31:30.000+00002018-05-08T13:57:23.000+000042237120185
B028002018-05-08T13:31:30.000+00002018-05-08T13:48:36.000+000033261null20185
B028002018-05-08T13:31:38.000+00002018-05-08T13:59:23.000+000016497120185
B028002018-05-08T13:31:41.000+00002018-05-08T13:38:35.000+0000144211120185
B028002018-05-08T13:31:43.000+00002018-05-08T13:44:23.000+000018648120185
In [1]:
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "nyctlc"
blob_relative_path = "fhv"
blob_sas_token = r""
In [2]:
# Allow SPARK to read from Blob remotely
wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set(
  'fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name),
  blob_sas_token)
print('Remote blob path: ' + wasbs_path)
In [3]:
# SPARK read parquet, note that it won't load any data yet by now
df = spark.read.parquet(wasbs_path)
print('Register the DataFrame as a SQL temporary view: source')
df.createOrReplaceTempView('source')
In [4]:
# Display top 10 rows
print('Displaying top 10 rows: ')
display(spark.sql('SELECT * FROM source LIMIT 10'))

Azure Synapse

Package: Language: Python Python
In [29]:
# This is a package in preview.
from azureml.opendatasets import NycTlcFhv

from datetime import datetime
from dateutil import parser


end_date = parser.parse('2018-06-06')
start_date = parser.parse('2018-05-01')
nyc_tlc = NycTlcFhv(start_date=start_date, end_date=end_date)
nyc_tlc_df = nyc_tlc.to_spark_dataframe()
In [30]:
# Display top 5 rows
display(nyc_tlc_df.limit(5))
Out[30]:
In [1]:
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "nyctlc"
blob_relative_path = "fhv"
blob_sas_token = r""
In [2]:
# Allow SPARK to read from Blob remotely
wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set(
  'fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name),
  blob_sas_token)
print('Remote blob path: ' + wasbs_path)
In [3]:
# SPARK read parquet, note that it won't load any data yet by now
df = spark.read.parquet(wasbs_path)
print('Register the DataFrame as a SQL temporary view: source')
df.createOrReplaceTempView('source')
In [4]:
# Display top 10 rows
print('Displaying top 10 rows: ')
display(spark.sql('SELECT * FROM source LIMIT 10'))