0 / 0
Go back to the English version of the documentation
Pythoniçin project
Last updated: 06 Tem 2023
Pythoniçin project

Bir defterden Watson Studio projelerinizle ve proje varlıklarınızla etkileşimde bulunmanız gerekiyorsa, Pythoniçin project-lib kitaplığını kullanabilirsiniz. Kitaplık, bir projeye programlı bir arabirim gibidir.

Pythoniçin project-lib kitaplığını kullanarak, dosyalar ve bağlantılar da dahil olmak üzere proje meta verilerine ve varlıklarına erişebilirsiniz. Kitaplık ayrıca, projeyle ilişkili dosyaları basitleştiren işlevler de içerir.

Not:

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

Kitaplığı kullan

Python için project-lib kitaplığı önceden kuruludur ve doğrudan not defteri düzenleyicide bir not defterine 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ğunuzdaki Diğer simgesini ve daha sonra, Proje simgesi ekledüğmesini tıklatın.

    Bir proje simgesi varsa, not defterinize aşağıdaki bilgileri içeren bir hücre eklenir:

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

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

    Bir ileti belirtecinin var olmadığı bir iletide anlatıldıysa, projenin Erişim Denetimi sayfasına yeniden yönlendirilecek iletteki bağlantıyı tıklatarak proje simgesi yaratabilirsiniz. Bir proje belirteci yaratma hakkına sahip olmanız gerekir. Ayrıntılar için bkz. Proje belirtecinin el ile eklenmesi.

    Proje simgesi yaratmak için:

    1. Manage (Yönet) etiketinden Access Control (Erişim Denetimi) sayfasını seçin ve Access simgelers(Erişim simgeleri) altındaki New access token (Yeni erişim simgesi)
    2. Bir ad girin, proje için Düzenleyici rolünü seçin ve bir simge oluşturun.
    3. Defterinize geri dönün, not defteri araç çubuğundaki Diğer simgesini ve daha sonra, Proje simgesi ekledüğmesini 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ümesi gösterir:

Proje bilgilerini getir

Proje ile ilgili bilgileri programsal 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şkilendirilen nesne depolamanın meta verilerini döndürür.

  • get_project_bucket_name()

    Bu işlev, ilişkili nesne depolamasındaki proje saklama kabı 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 listede yer alan 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 parametresini get_assets işlevine geçirebilirsiniz. Bu parametre, varlıkları tipe göre süzgeçten geçirmenizi sağlar. Bu parametre için kabul edilen değerler data_asset, connection ve asset' dir. 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, tanıtımın tanıtıcısını ve adını içerir.

Dosyaları getir

Projeniz ile 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 almak istediğiniz dosyanın adıdır.

    Bu işlev, Spark 'ı kullanarak nesne depolamasından bir dosya almak için URL ' yi döndürür. URL adresi, projeyle ilişkili nesne deposu tipine dayalı olarak oluşturulur. Hadoop configurations are set up automatically when you interact with the object storage of your project.

    Aşağıdaki örnek, Spark kullanarak nesne depolamasından veri almak için bu işlevin nasıl kullanılacağını gösterir:

    # 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 almak istediğiniz dosyanın adıdır.

    Bu işlev, nesne depolamadaki bir dosyayı çalışan çekirdeğin belleğindeki belleğe alır. İşlev, çekirdeğe özgü veri yapılarına (örneğin, pandalar DataFrame) bağlamak için kullanılabilen bir bayt arabelleği döndürür. Çok büyük dosyalar için bu dosya getirme yöntemi önerilmez.

    Aşağıdaki örnek, bir dosyanın nasıl getirileceğini ve pandalar DataFrameiçinde nasıl okunacağını gösterir:

    # 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 saklamak için aşağıdaki işlevi kullanabilirsiniz. Veriler, ilişkili Cloud Object Storageiçindeki proje sepetine bir dosya olarak eklenecektir. Bu işlev birden çok şey yapar. İlk olarak, verileri nesne deposuna koyar ve bu verileri projenizin bir veri varlığı olarak ekler; böylece, projenizdeki veri varlıkları listesinde bir dosya olarak kaydetmiş olduğunuz verileri görebilirsiniz.

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

İşlev aşağıdaki değiştirgeleri alır:

  • file_name: yaratılan dosyanın adı.
  • data: Yüklemek için veri. Bu, file-like-objecttipinde herhangi bir nesne (örneğin, byte arabellekleri ya da dizgi arabellekleri) olabilir.
  • set_project_asset[optional]: verileri, veriler nesne deposuna başarıyla yüklendikten sonra bir 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 ayarlıdır.

Aşağıda, verileri nesne depolamasındaki bir dosyaya nasıl saklayabileceğiniz gösteren bir örnek vardır:

# 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ıdaki verileri okuma

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

get_connection: İşlev, bağlantının tanıtıcısını ya da bağlantının adını ya da bağlantının adını 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 elde edebilirsiniz.

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 getirebileceğiniz gösteren bir örnek vardır:

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

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

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

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. Bu işlev, ilgili bağlantıdaki belirli verileri (örneğin, bir dashDB örneğindeki bir tablo ya da Cloudant ) bir veritabanında işaret eden bir datapath özniteliğine ek olarak bağlantı kimlik bilgilerini içeren bir sözlük döndürür.

get_connected_data: bu işlev, bağlı verilerin tanıtıcısını ya da bağlı verilerin adını girdikçe 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 elde edebilirsiniz.

Here is an example, which shows you how to fetch the credentials of connected data in a dashDB instance by using the get_connected_data function:

# 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

Bu işlevlerin bir web günlüğü gönderisinde bir tanıtıma bakın.

Üst konu: Not defterine veri yüklenmesi ve not defterine erişilmesi

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