Ukázková data ve službě Azure Blob StorageSample data in Azure blob storage

Tento článek popisuje vzorkování dat uložených v úložišti objektů BLOB v Azure tím, že ho stáhne programově a pak ho vypíše pomocí postupů napsaných v Pythonu.This article covers sampling data stored in Azure blob storage by downloading it programmatically and then sampling it using procedures written in Python.

Proč vzorkovat data?Why sample your data? Pokud je datová sada, kterou plánujete analyzovat, rozsáhlá, je obvykle vhodné ji vyvzorkovat, aby se snížila na menší, ale jenom se zástupcem a více spravovatelnými velikostmi.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. Vzorkování usnadňuje porozumění datům, průzkumům a inženýrům funkcí.Sampling facilitates data understanding, exploration, and feature engineering. Jeho rolí v procesu Cortana Analytics je povolit rychlé vytváření prototypů funkcí pro zpracování dat a modelů strojového učení.Its role in the Cortana Analytics Process is to enable fast prototyping of the data processing functions and machine learning models.

Tento úkol vzorkování je krok v rámci vědeckého zpracování týmových dat (TDSP).This sampling task is a step in the Team Data Science Process (TDSP).

Stažení a snížení ukázkových datDownload and down-sample data

  1. Stáhněte si data z úložiště objektů BLOB v Azure pomocí Blob service v následujícím ukázkovém kódu Pythonu: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. Načte data do PANDAS data-Frame ze souboru staženého výše.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. Vyznamenejte data pomocí numpy random.choice následujícího postupu: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]
    

Nyní můžete pracovat s výše uvedeným datovým rámcem s využitím jedné procentuální ukázky pro další zkoumání a generaci funkcí.Now you can work with the above data frame with the one Percent sample for further exploration and feature generation.

Nahrajte data a přečtěte je Azure Machine LearningUpload data and read it into Azure Machine Learning

Následující vzorový kód můžete použít k rozstupnému vzorkování dat a jeho použití přímo v Azure Machine Learning:You can use the following sample code to down-sample the data and use it directly in Azure Machine Learning:

  1. Zapsat datový rámec do místního souboruWrite the data frame to a local file

     dataframe.to_csv(os.path.join(os.getcwd(),LOCALFILENAME), sep='\t', encoding='utf-8', index=False)
    
  2. Místní soubor nahrajte do objektu blob Azure pomocí následujícího ukázkového kódu: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. Přečtěte si data z objektu blob Azure pomocí Azure Machine Learning importujte data , jak je znázorněno na následujícím obrázku:Read the data from the Azure blob using Azure Machine Learning Import Data as shown in the image below:

objekt BLOB čtečky