0 / 0
Go back to the English version of the documentation
project-lib for Python
Last updated: 18 Ağu 2023
project-lib for Python

Watson Studio projelerinizle ve proje varlıklarıyla bir dizüstü bilgisayardan etkileşimde bulunmanız gerekirse, project-lib kitaplığını Pythoniçin kullanabilirsiniz. Kitaplık, bir proje için programsal bir arabirim gibidir.

Pythoniçin project-lib kitaplığını kullanarak, dosyalar ve bağlantılar da içinde olmak üzere proje meta verilerine ve varlıklarına erişebilirsiniz. Kitaplık, projeyle ilişkili dosyaların getirilmesini kolaylaştıran işlevleri de içerir.

Not:


- project-lib işlevleri, bir dosyaya veri kaydederken ya da dosyadan veri alınırken verileri kodlamaz ya da verilerin kodunu çözmez.
- project-lib işlevleri, bağlantılı klasör varlıklarına ( Cloud Object Storageiçindeki bir yoldaki dosyalar) erişmek için kullanılamaz.

Kitaplığı kullan

Python için project-lib kitaplığı önceden kurulur ve defter düzenleyicisindeki bir dizüstü bilgisayara doğrudan içe aktarılabilir. Not defterinizde project-lib kitaplığını kullanmak için projenin tanıtıcısı ve proje simgesi gerekir.

Proje simgesini not defterinize eklemek için:

  1. Not defteri araç çubuğunuzda Diğer simgesini ve ardından Proje simgesi ekle' yi tıklatın.

    Bir proje simgesi varsa, not defterinize aşağıdaki bilgilerle bir hücre eklenir:

    from project_lib import Project
    project = Project(sc,"<ProjectId>","<ProjectToken>")
    

    sc , Spark kullanılıyorsa Spark bağlamdır. <ProjectId> projenizin tanıtıcısıdır ve <ProjectToken> proje simgesinin değeridir.

    Bir iletide proje simgesi olmadığı söylenirse, proje simgesi yaratabileceğiniz projenin Erişim Denetimi sayfasına yönlendirilmek için iletideki bağlantıyı tıklatın. Bir proje simgesi yaratmak için uygun olmanız gerekir. Ayrıntılar için bkz. Proje simgesini el ile ekleme.

    Proje simgesi yaratmak için:

    1. Manage (Yönet) sekmesinden Access Control (Erişim Denetimi) sayfasını seçin ve Access tokens(Erişim belirteçleri) altındaki New access token (Yeni erişim simgesi) seçeneğini tıklatın.
    2. Bir ad girin, proje için Düzenleyici rolünü seçin ve bir belirteç oluşturun.
    3. Not defterinize geri dönün, not defteri araç çubuğundaki Diğer simgesini tıklatın ve ardından Proje simgesi ekle' yi tıklatın.

project-lib işlevleri

project-lib kitaplığını içe aktardıktan sonra yaratılan somutlaştırılan proje nesnesi, aşağıdaki şekilde gruplanmış bir işlev kümesini gösterir:

Proje bilgilerini getir

Projeyle ilgili bilgileri programlı olarak getirmek için aşağıdaki işlevleri kullanabilirsiniz:

  • get_name()

    Bu işlev, projenin adını döndürür.

  • get_description()

    Bu işlev, projenin tanımını döndürür.

  • get_metadata()

    Bu işlev, proje meta verilerini döndürür.

  • get_storage_metadata()

    Bu işlev, projeyle ilişkili nesne deposunun meta verilerini döndürür.

  • get_project_bucket_name()

    Bu işlev, ilişkili nesne deposunda proje paketi adını döndürür. Tüm proje dosyaları bu saklama kabında saklanır.

  • get_files()

    Bu işlev, projenizdeki dosyaların listesini döndürür. Döndürülen listedeki her öğe, dosyanın tanıtıcısını ve adını içerir. Döndürülen dosyaların listesi herhangi bir ölçüte göre sıralanmaz ve işlevi yeniden çağırdığınızda değişebilir.

  • get_assets()

    Bu işlev, tüm proje varlıklarının listesini döndürür. İsteğe bağlı asset_type değiştirgesini, varlıkları tipe göre süzmenize olanak sağlayan get_assets işlevine geçirebilirsiniz. Bu parametre için kabul edilen değerler: data_asset, connection ve asset. asset değeri, projenizdeki tüm varlıkları döndürür. Örneğin, yalnızca veri varlıklarını almak için get_assets("data_asset")işlevini kullanın.

  • get_connections()

    Bu işlev, projenizdeki bağlantıların bir listesini döndürür. Döndürülen listedeki her öğe, bağlantının tanıtıcısını ve adını içerir.

Dosyaları getir

Projenizle ilişkili nesne deposunda saklanan dosyaları getirmek için aşağıdaki işlevleri kullanabilirsiniz.

Dosyaları iki şekilde getirebilirsiniz:

  • get_file_url(file_name) burada file_name , getirmek istediğiniz dosyanın adıdır.

    Bu işlev, Spark kullanarak nesne deposundan bir dosyayı almak için URL ' yi döndürür. URL, projeyle ilişkili nesne depolama tipine dayalı olarak oluşturulur. Hadoop yapılandırmaları, projenizin nesne depolamasıyla etkileşimde bulunduğunuzda otomatik olarak ayarlanır.

    Aşağıdaki örnekte, Spark kullanarak nesne deposundan veri almak için bu işlevin nasıl kullanılacağı gösterilmektedir:

    # Import the lib
    from project_lib import Project
    project = Project(sc,"<ProjectId>", "<ProjectToken>")
    
    # Get the url
    url = project.get_file_url("myFile.csv")
    
    # Fetch the CSV file from the object storage using Spark
    from pyspark.sql import SparkSession
    spark = SparkSession.builder.getOrCreate()
    df_data_1 = spark.read\
      .format('org.apache.spark.sql.execution.datasources.csv.CSVFileFormat')\
      .option('header', 'true')\
      .load(url)
    df_data_1.show(5)
    
  • get_file(file_name) burada file_name , getirmek istediğiniz dosyanın adıdır.

    Bu işlev, nesne deposundan çalışmakta olan çekirdeğin belleğine bir dosya getirir. İşlev, çekirdeğe özgü veri yapılarına (örneğin, bir pandas DataFrame) bağlanmak için kullanılabilecek bir bayt arabelleği döndürür. Bu dosya getirme yöntemi çok büyük dosyalar için önerilmez.

    Aşağıdaki örnek, bir dosyanın nasıl getirileceğini ve verilerin bir panda DataFrame' e nasıl okunacağını göstermektedir:

    # Import the lib
    from project_lib import Project
    project = Project(sc,"<ProjectId>", "<ProjectToken>")
    
    # Fetch the file
    my_file = project.get_file("myFile.csv")
    
    # Read the CSV data file from the object storage into a pandas DataFrame
    my_file.seek(0)
    import pandas as pd
    pd.read_csv(my_file, nrows=10)
    

Verileri kaydetme

Projenizle ilişkili nesne deposuna veri kaydetmek için aşağıdaki işlevi kullanabilirsiniz. Veriler, ilişkili Cloud Object Storageiçindeki proje deposuna bir dosya olarak eklenecektir. Bu işlev birden çok şey yapar. İlk olarak, verileri nesne deposuna koyar ve daha sonra projenize veri varlığı olarak bu verileri ekler; böylece, projenizdeki veri varlıkları listesinde dosya olarak kaydettiğiniz verileri görebilirsiniz.

save_data(file_name, data, set_project_asset=True, overwrite=False)

İşlev aşağıdaki parametreleri alır:

  • file_name: yaratılan dosyanın adı.
  • data: karşıya yüklenecek veriler. Bu, file-like-objecttipinde herhangi bir nesne olabilir; örneğin, bayt arabellekleri ya da dizgi arabellekleri.
  • set_project_asset[optional]: veriler nesne deposuna başarıyla yüklendikten sonra dosyayı veri varlığı olarak projeye ekler. Bir boole değeri alır ve true değeri varsayılan olarak ayarlanır.
  • overwrite[optional]: Dosya, nesne deposunda ya da projede zaten varsa dosyanın üzerine yazılır. Varsayılan olarak false olarak ayarlanır.

Aşağıda, verileri nesne deposunda bir dosyaya nasıl saklayabileceğinizi gösteren bir örnek verilmiştir:

# Import the lib
from project_lib import Project
project = Project(sc,"<ProjectId>", "<ProjectToken>")

# let's assume you have the pandas DataFrame  pandas_df which contains the data
# you want to save in your object storage as a csv file
project.save_data("file_name.csv", pandas_df.to_csv(index=False))

# the function returns a dict which contains the asset_id, bucket_name and file_name
# upon successful saving of the data

Bağlantıdan veri okuma

Belirli bir bağlantının meta verilerini (kimlik bilgilerini) almak için aşağıdaki işlevi kullanabilirsiniz.

get_connection: İşlev, bağlantının tanıtıcısını ya da adını giriş olarak alır. Bu değerleri, projede listelenen tüm varlıkların id, name ve type değerlerini döndüren get_assets() işlevini kullanarak alabilirsiniz.

get_connection işlevi, bağlantı veri kaynağından veri almak için kullanabileceğiniz bağlantı kimlik bilgilerini döndürür.

Aşağıda, get_connection işlevini kullanarak bir bağlantının kimlik bilgilerini nasıl alabileceğinizi gösteren bir örnek verilmiştir:

# Import the lib
from project_lib import Project
    project = Project(sc,"<ProjectId>", "<ProjectToken>")

conn_creds = project.get_connection(name="<ConnectionName>")

Bağlantınız dashDB ile bağlantıysa, aşağıdaki kodu çalıştırarak verilerinizi alabilirsiniz:

from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()

host_url = "jdbc:db2://{}:{}/{}".format(conn_creds["host"], "50000", conn_creds["database"])
data_df = spark.read.jdbc(host_url, table="<TableName>", properties={"user": conn_creds["username"], "password": conn_creds["password"]})
data_df.show()

Bağlı verileri getir

Bağlı verilerin kimlik bilgilerini almak için aşağıdaki işlevi kullanabilirsiniz. İşlev, o bağlantıdaki belirli verileri gösteren bir datapath özniteliğine ek olarak bağlantı kimlik bilgilerini de içeren bir sözlük döndürür; örneğin, bir dashDB örneğindeki bir tablo ya da Cloudant eşgörünümündeki bir veritabanı.

get_connected_data: Bu işlev, bağlı verilerin tanıtıcısını ya da bağlı verilerin adını giriş olarak alır. Bu değerleri, projede listelenen tüm varlıkların id, name ve type değerlerini döndüren get_assets() işlevini kullanarak alabilirsiniz.

Aşağıda, get_connected_data işlevini kullanarak dashDB eşgörünümündeki bağlı verilerin kimlik bilgilerini nasıl getireceğinizi gösteren bir örnek verilmiştir:

# Import the lib
from project_lib import Project
project = Project(sc,"<ProjectId>", "<ProjectToken>")

creds = project.get_connected_data(name="<ConnectedDataName>")
# creds is a dictionary that has the connection credentials in addition to
# a datapath that references a specific table in the database
# creds: {'database': 'DB_NAME',
# 'datapath': '/DASH11846/SAMPLE_TABLE',
# 'host': 'dashdb-entry-yp-dal09-07.services.dal.bluemix.net',
# 'password': 'XXXX',
# 'sg_service_url': 'https://sgmanager.ng.bluemix.net',
# 'username': 'XXXX'}

Daha fazla bilgi

Web günlüğü gönderisinde bu işlevlerin bir gösterimini izleyin.

Üst konu: Not defterindeki verileri yükleme ve verilere erişme

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more