NYC Taxi & Limousine Commission - For-Hire Vehicle (FHV) trip records
Os registos de corridas de Veículos de Aluguer (For-Hire Vehicle, “FHV”) incluem campos que registam o número de licença da central, a data e hora da recolha e o ID da localização da zona do táxi (ficheiro de forma abaixo). Estes registos são gerados a partir das submissões de Registos de Corridas de FHV realizadas pelas centrais.
Volume e Retenção
Este conjunto de dados é armazenado no formato Parquet. À data de 2018, existem aproximadamente 500 milhões de linhas (5 GB).
Este conjunto de dados contém registos históricos acumulados de 2009 a 2018. Pode utilizar as definições de parâmetros no nosso SDK para obter os dados num intervalo de tempo específico.
Localização do Armazenamento
Este conjunto de dados é armazenado na região do Azure E.U.A. Leste. A alocação de recursos de computação nos E.U.A. Leste é recomendada por questões de afinidade.
Informações adicionais
Comissão de Táxis e Limusinas (TLC) de Nova Iorque:
Os dados foram recolhidos e fornecidos à Comissão de Táxis e Limusinas (TLC) de Nova Iorque por fornecedores de tecnologia autorizados ao abrigo dos Programas Taxicab e Livery Passenger Enhancement (TPEP/LPEP). Os dados das corridas não foram criados pela TLC, a qual não assume qualquer responsabilidade pela exatidão desses dados.
Estão disponíveis informações adicionais sobre os Dados de Registos de Corridas da TLC aqui e aqui.
Avisos
A MICROSOFT DISPONIBILIZA OS CONJUNTOS DE DADOS ABERTOS DO AZURE TAL COMO ESTÃO. A MICROSOFT NÃO FAZ GARANTIAS, EXPRESSAS OU IMPLÍCITAS, NEM CONDIÇÕES RELATIVAMENTE À SUA UTILIZAÇÃO DOS CONJUNTOS DE DADOS. ATÉ AO LIMITE MÁXIMO PERMITIDO PELA LEGISLAÇÃO LOCAL, A MICROSOFT REJEITA QUALQUER RESPONSABILIDADE POR DANOS OU PERDAS, INCLUINDO DIRETOS, CONSEQUENCIAIS, ESPECIAIS, INDIRETOS, INCIDENTAIS OU PUNITIVOS, QUE RESULTEM DA SUA UTILIZAÇÃO DOS CONJUNTOS DE DADOS.
Este conjunto de dados é disponibilizado de acordo com os termos originais em que a Microsoft recebeu os dados de origem. O conjunto de dados pode incluir dados obtidos junto da Microsoft.
Access
Available in | When 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 de Licença de Central TLC da central que pediu a viagem |
doLocationId | string | 267 | 265 132 |
Zona de Táxi da TLC onde 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 fim da corrida. |
pickupDateTime | timestamp | 111,270,396 | 2016-08-16 00:00:00 2016-08-17 00:00:00 |
A data e a hora da recolha da viagem. |
puLocationId | string | 266 | 79 161 |
Zona de Táxi da TLC onde a viagem começou. |
puMonth | int | 12 | 1 12 |
|
puYear | int | 5 | 2018 2017 |
|
srFlag | string | 44 | 1 2 |
Indica que a corrida foi parte de uma corrente de viagem partilhada oferecida por uma empresa de Serviços de Aluguer de Grande Volume (por exemplo, Uber Pool, Lyft Line). Para as corridas partilhadas, o valor é 1. Para as viagens não partilhadas, este campo é nulo. OBSERVAÇÃO: Relativamente à maioria das empresas de Serviços de Aluguer de Grande Volume, só são sinalizadas deslocações partilhadas que foram pedidas E corresponderam a outro pedido de viagem partilhada ao longo da jornada. Contudo, a Lyft (números de licenças base B02510 + B02844) também sinaliza viagens nas quais foram pedidas viagens partilhadas, mas em que nenhum outro passageiro correspondeu com êxito para essa partilha. Por esse motivo, os registos de corridas com SR_Flag=1 dessas duas bases poderão significar OU uma primeira viagem numa corrente de viagem partilhada OU uma corrida na qual foi pedida uma viagem partilhada, mas nunca houve correspondência para a mesma. Os utilizadores devem contar com uma contagem excessiva de viagens partilhadas bem-sucedidas realizadas pela Lyft. |
Azure Notebooks
# 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()
nyc_tlc_df.info()
# 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
# Azure storage access info
azure_storage_account_name = "azureopendatastorage"
azure_storage_sas_token = r""
container_name = "nyctlc"
folder_name = "fhv"
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)
# 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)
# you can add your filter at below
print('Loaded as a Pandas data frame: ')
df
Azure Databricks
# 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()
display(nyc_tlc_df.limit(5))
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "nyctlc"
blob_relative_path = "fhv"
blob_sas_token = r""
# 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)
# 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')
# Display top 10 rows
print('Displaying top 10 rows: ')
display(spark.sql('SELECT * FROM source LIMIT 10'))
Azure Synapse
# 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()
# Display top 5 rows
display(nyc_tlc_df.limit(5))
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "nyctlc"
blob_relative_path = "fhv"
blob_sas_token = r""
# 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)
# 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')
# Display top 10 rows
print('Displaying top 10 rows: ')
display(spark.sql('SELECT * FROM source LIMIT 10'))