NYC Taxi & Limousine Commission - For-Hire Vehicle (FHV) trip records
Rekordy przejazdów pojazdami na wynajem obejmują pola zawierające numer licencji centrali oraz datę i godzinę odebrania pasażera, jak również identyfikator lokalizacji strefy taksówkowej (plik kształtu poniżej). Te rekordy są generowane na podstawie danych przesyłanych do systemu FHV Trip Record przez centrale.
Ilość danych i przechowywanie
Ten zestaw danych jest przechowywany w formacie Parquet. Obejmuje około 500 milionów wierszy (5 GB) danych (informacja aktualna na rok 2018).
Ten zestaw danych zawiera historyczne rekordy z lat 2009–2018. Aby pobrać dane z konkretnego przedziału czasowego, należy użyć ustawień parametrów w zestawie SDK.
Lokalizacja przechowywania
Ten zestaw danych jest przechowywany w regionie platformy Azure Wschodnie stany USA. Zalecamy przydzielanie zasobów obliczeniowych w regionie Wschodnie stany USA z uwagi na koligację.
Dodatkowe informacje
Komisja ds. taksówek i limuzyn miasta Nowy Jork (TLC):
Dane zostały zebrane i dostarczone do TLC przez dostawców technologii uczestniczących w programach TPEP/LPEP (Taxicab & Livery Passenger Enhancement Program). Dane dotyczące przejazdów nie zostały utworzone przez TLC i komisja nie gwarantuje rzetelności tych danych.
Dodatkowe informacje na temat danych TLC o przewozach można znaleźć tutaj i tutaj.
Uwagi
FIRMA MICROSOFT UDOSTĘPNIA OTWARTE ZESTAWY DANYCH W ICH AKTUALNYM STANIE. FIRMA MICROSOFT NIE UDZIELA ŻADNYCH GWARANCJI, JAWNYCH LUB DOMNIEMANYCH, ANI NIE OKREŚLA ŻADNYCH WARUNKÓW W ODNIESIENIU DO KORZYSTANIA Z ZESTAWÓW DANYCH. W ZAKRESIE DOZWOLONYM PRZEZ PRZEPISY PRAWA LOKALNEGO FIRMA MICROSOFT ZRZEKA SIĘ ODPOWIEDZIALNOŚCI ZA JAKIEKOLWIEK STRATY I SZKODY, W TYM SZKODY BEZPOŚREDNIE, WYNIKOWE, SPECJALNE, POŚREDNIE, PRZYPADKOWE LUB KARNE, WYNIKAJĄCE Z KORZYSTANIA Z TYCH ZESTAWÓW DANYCH.
Zestaw danych jest udostępniany zgodnie z pierwotnymi warunkami, na jakich firma Microsoft otrzymała dane źródłowe. Zestaw danych może zawierać dane pozyskane z firmy 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 |
Numer licencji TLC bazy, z której wysłano przejazd |
doLocationId | string | 267 | 265 132 |
Strefa taksówkowa TLC, w której zakończył się przejazd. |
dropOffDateTime | timestamp | 57,110,352 | 2017-07-31 23:59:00 2017-10-15 00:44:34 |
Data i godzina zakończenia przejazdu przez pasażera. |
pickupDateTime | timestamp | 111,270,396 | 2016-08-16 00:00:00 2016-08-17 00:00:00 |
Data i godzina rozpoczęcia przejazdu przez pasażera. |
puLocationId | string | 266 | 79 161 |
Strefa taksówkowa TLC, w której rozpoczął się przejazd. |
puMonth | int | 12 | 1 12 |
|
puYear | int | 5 | 2018 2017 |
|
srFlag | string | 44 | 1 2 |
Wskazuje, czy przejazd odbywał się w ramach ciągu wspólnych przejazdów oferowanego przez masowego operatora przewozów pasażerskich (na przykład Uber Pool, Lyft Line). W przypadku wspólnych przejazdów to pole zawiera wartość 1. W przypadku przejazdów, które nie były wspólne, to pole ma wartość null. UWAGA: W przypadku większości masowych operatorów przewozów pasażerskich oznaczone tą flagą są tylko wspólne przejazdy, które zostały zamówione ORAZ dopasowane do innego zamówienia wspólnego przejazdu w czasie trwania podróży. Jednak firma Lyft (numery licencji bazy: B02510 i B02844) oznacza w ten sposób także zamówione przejazdy wspólne, do których nie udało się dopasować zamówienia innego pasażera — a zatem rekordy przejazdów z oznaczeniem SR_Flag=1 z tych dwóch baz mogą oznaczać pierwszy przejazd w ramach ciągu wspólnych przejazdów LUB przejazd, dla którego zamówiono przejazd wspólny, ale nie dopasowano innego pasażera. Użytkownicy powinni uwzględnić potencjalne przeszacowanie liczby przejazdów wspólnych zrealizowanych przez firmę 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'))