Datenstichproben im Azure-Blob-SpeicherSample data in Azure blob storage

Dieser Artikel behandelt das Erstellen von Stichproben aus Daten in Azure Blob Storage durch programmgesteuertes Herunterladen, um dann mit Prozeduren in Python-Code Stichproben zu erstellen.This article covers sampling data stored in Azure blob storage by downloading it programmatically and then sampling it using procedures written in Python.

Warum eine Datenstichprobe entnehmen?Why sample your data? Wenn das zu analysierende Dataset groß ist, sollten Sie in der Regel eine Komprimierung der Daten durchführen, um eine geringere aber immer noch repräsentative Größe zu erhalten.If the dataset you plan to analyze is large, it's usually a good idea to down-sample the data to reduce it to a smaller but representative and more manageable size. Dies erleichtert das Verständnis der Daten, das Durchsuchen und die Funktionsverarbeitung.This facilitates data understanding, exploration, and feature engineering. Die Funktion besteht innerhalb des Cortana-Analyseprozesses darin, schnell Prototypen der Funktionen zur Datenverarbeitung und Modelle für das maschinelle Lernen zu erstellen.Its role in the Cortana Analytics Process is to enable fast prototyping of the data processing functions and machine learning models.

Dieser Stichprobentask ist ein Schritt im Team Data Science-Prozess (TDSP).This sampling task is a step in the Team Data Science Process (TDSP).

Download und Downsampling von Daten Download and down-sample data

  1. Laden Sie die Daten aus Azure Blob Storage mithilfe des Blobdiensts aus dem folgenden Python-Beispielcode herunter:Download the data from Azure blob storage using the blob service from the following sample Python code:

     from azure.storage.blob import BlobService
     import tables
    
     STORAGEACCOUNTNAME= <storage_account_name>
     STORAGEACCOUNTKEY= <storage_account_key>
     LOCALFILENAME= <local_file_name>        
     CONTAINERNAME= <container_name>
     BLOBNAME= <blob_name>
    
     #download from blob
     t1=time.time()
     blob_service=BlobService(account_name=STORAGEACCOUNTNAME,account_key=STORAGEACCOUNTKEY)
     blob_service.get_blob_to_path(CONTAINERNAME,BLOBNAME,LOCALFILENAME)
     t2=time.time()
     print(("It takes %s seconds to download "+blobname) % (t2 - t1))
    
  2. Lesen Sie die Daten aus der heruntergeladenen Datei in ein Pandas-DataFrame ein.Read data into a Pandas data-frame from the file downloaded above.

     import pandas as pd
    
     #directly ready from file on disk
     dataframe_blobdata = pd.read_csv(LOCALFILE)
    
  3. Erstellen Sie mit der random.choice-Funktion von numpy wie folgt Stichproben:Down-sample the data using the numpy's random.choice as follows:

     # A 1 percent sample
     sample_ratio = 0.01 
     sample_size = np.round(dataframe_blobdata.shape[0] * sample_ratio)
     sample_rows = np.random.choice(dataframe_blobdata.index.values, sample_size)
     dataframe_blobdata_sample = dataframe_blobdata.ix[sample_rows]
    

Sie können nun mit dem DataFrame von oben mit der 1-%-Stichprobe weitere Datensuchvorgänge durchführen und Funktionen verarbeiten.Now you can work with the above data frame with the 1 Percent sample for further exploration and feature generation.

Hochladen von Daten und Einlesen in Azure Machine LearningUpload data and read it into Azure Machine Learning

Mit dem folgenden Beispielcode können Sie ein Downsampling der Daten durchführen und diese direkt in Azure Machine Learning verwenden:You can use the following sample code to down-sample the data and use it directly in Azure Machine Learning:

  1. Schreiben Sie den DataFrame in eine lokale Datei:Write the data frame to a local file

     dataframe.to_csv(os.path.join(os.getcwd(),LOCALFILENAME), sep='\t', encoding='utf-8', index=False)
    
  2. Laden Sie die lokale Datei mit folgendem Beispielcode in ein Azure-Blob hoch:Upload the local file to an Azure blob using the following sample code:

     from azure.storage.blob import BlobService
     import tables
    
     STORAGEACCOUNTNAME= <storage_account_name>
     LOCALFILENAME= <local_file_name>
     STORAGEACCOUNTKEY= <storage_account_key>
     CONTAINERNAME= <container_name>
     BLOBNAME= <blob_name>
    
     output_blob_service=BlobService(account_name=STORAGEACCOUNTNAME,account_key=STORAGEACCOUNTKEY)    
     localfileprocessed = os.path.join(os.getcwd(),LOCALFILENAME) #assuming file is in current working directory
    
     try:
    
     #perform upload
     output_blob_service.put_block_blob_from_path(CONTAINERNAME,BLOBNAME,localfileprocessed)
    
     except:            
         print ("Something went wrong with uploading to the blob:"+ BLOBNAME)
    
  3. Lesen Sie die Daten wie in der folgenden Abbildung dargestellt mit dem Azure Machine Learning-Modul Import Data aus dem Azure-Blob:Read the data from the Azure blob using Azure Machine Learning Import Data as shown in the image below:

Reader-Blob