Navigatie overslaan

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

NYC TLC Taxi FHV

De records met FHV-ritten (For-Hire Vehicle) bevatten velden waarin het basislicentienummer van de centrale, de afhaaldatum en -tijd, en de locatie-id van de taxizone worden vastgelegd (vormbestand hieronder). Deze records worden gegenereerd op basis van de door centrales ingediende FHV-ritrecords.

Volume en retentie

Deze gegevensset wordt opgeslagen in de Parquet-indeling. Er zijn circa 500 miljoen rijen (5 GB) tot aan 2018.

Deze gegevensset bevat historische records die van 2009 tot en met 2018 heden zijn verzameld. U kunt in onze SDK gebruikmaken van parameterinstellingen om gegevens op te halen binnen een specifiek tijdsbereik.

Opslaglocatie

Deze gegevensset wordt opgeslagen in de Azure-regio US - oost. Het wordt aanbevolen om rekenresources in US - oost toe te wijzen voor affiniteit.

Aanvullende informatie

NYC Taxi and Limousine Commission (TLC):

De gegevens die zijn verzameld en aan de NYC Taxi and Limousine Commission (TLC) zijn gegevens door technologiepartners die bevoegd zijn onder de Taxicab & Livery Passenger Enhancement Programs (TPEP/LPEP). De ritgegevens zijn niet door TLC gemaakt en TLC geeft geen verklaring over de nauwkeurigheid van deze gegevens.

Kijk hier en hier voor meer informatie over de vastgelegde ritgegevens van TLC.

Mededelingen

AZURE OPEN GEGEVENSSETS WORDEN DOOR MICROSOFT ONGEWIJZIGD GELEVERD. MICROSOFT GEEFT GEEN GARANTIES, EXPLICIET OF IMPLICIET, ZEKERHEDEN OF VOORWAARDEN MET BETREKKING TOT HET GEBRUIK VAN DE GEGEVENSSETS. VOOR ZOVER IS TOEGESTAAN ONDER HET TOEPASSELIJKE RECHT, WIJST MICROSOFT ALLE AANSPRAKELIJKHEID AF VOOR SCHADE OF VERLIEZEN, WAARONDER GEVOLGSCHADE OF DIRECTE, SPECIALE, INDIRECTE, INCIDENTELE OF PUNITIEVE SCHADE DIE VOORTVLOEIT UIT HET GEBRUIK VAN DE GEGEVENSSETS.

Deze gegevensset wordt geleverd onder de oorspronkelijke voorwaarden dat Microsoft de brongegevens heeft ontvangen. De gegevensset kan gegevens bevatten die afkomstig zijn van 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

Het TLC-basislicentienummer van de centrale van waaruit de rit is verstuurd

doLocationId string 267 265
132

De TLC-taxizone waarin de rit is beëindigd.

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

De datum en tijd waarop de reizigers moeten worden afgezet.

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

De datum en tijd waarop de reizigers moeten worden opgehaald.

puLocationId string 266 79
161

De TLC-taxizone waarin de rit is gestart.

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

Geeft aan of de rit onderdeel was van een carpoolrittenketen die werd aangeboden door een grootschalig FHV-bedrijf (bijvoorbeeld UberPool en LyftLine). Voor carpoolritten is de waarde 1. Voor andere ritten is de waarde in dit veld Null.

OPMERKING: Voor de meeste grootschalige FHV-bedrijven worden alleen carpoolritten gemarkeerd die zijn aangevraagd EN waarvoor een match is gevonden met een andere carpoolaanvraag gedurende de rit. Lyft (basislicentienummers B02510 + B02844) markeert ook ritten waarvoor een carpoolrit is aangevraagd, maar er geen match is gevonden voor een andere passagier om de rit mee te delen. Rittenrecords met SR_Flag=1 van die twee bases kunnen daarom het volgende aangeven: OF een eerste rit in een carpoolrittenketen OF een rit waarvoor een carpoolrit is aangevraagd maar waarvoor nooit een match is gevonden. Gebruikers moeten een te hoge berekening verwachten van geslaagde carpoolritten die door Lyft zijn uitgevoerd.

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'))