Translation not up to date
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.
- 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:
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:
- 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.
- Bir ad girin, proje için Düzenleyici rolünü seçin ve bir belirteç oluşturun.
- 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
- Dosyaları getir
- Verileri kaydetme
- Bağlantıdan veri okuma
- Bağlı verileri getir
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ğlayanget_assets
işlevine geçirebilirsiniz. Bu parametre için kabul edilen değerler:data_asset
,connection
veasset
.asset
değeri, projenizdeki tüm varlıkları döndürür. Örneğin, yalnızca veri varlıklarını almak içinget_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)
buradafile_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)
buradafile_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-object
tipinde 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