Translation not up to date
Jeśli zachodzi potrzeba interakcji z projektami Watson Studio i zasobami projektowym z notatnika, można użyć biblioteki produktu project-lib
dla R. Biblioteka jest jak programowy interfejs do projektu.
Korzystając z biblioteki produktu project-lib
dla R, można uzyskać dostęp do metadanych projektu i zasobów aplikacyjnych, w tym do plików i połączeń. Biblioteka zawiera również funkcje, które upraszczają pobieranie plików powiązanych z projektem.
-funkcje project-lib
nie kodują ani nie dekodują danych podczas zapisywania danych w pliku lub pobierania danych z pliku.
-funkcje project-lib
nie mogą być używane do uzyskiwania dostępu do połączonych zasobów folderu (pliki w ścieżce w Cloud Object Storage).
Użyj biblioteki
Biblioteka project-lib
dla R jest wstępnie zainstalowana i może być importowana bezpośrednio w notatniku w edytorze notatnika. Aby użyć biblioteki project-lib
w notatniku, potrzebny jest identyfikator projektu i znacznik projektu.
Aby wstawić znacznik projektu do notatnika:
Kliknij ikonę Więcej na pasku narzędzi notatnika, a następnie kliknij opcję Wstaw znacznik projektu.
Jeśli znacznik projektu istnieje, do notatnika zostanie dodana komórka z następującymi informacjami:
library(projectLib) project <- projectLib::Project$new(sc, "<ProjectId>", "<ProjectToken>")
sc
jest kontekstem Spark, jeśli używany jest park Spark.<ProjectId>
to identyfikator projektu, a<ProjectToken>
to wartość znacznika projektu.Jeśli w komunikacie powiedziano, że nie istnieje znacznik projektu, należy kliknąć odsyłacz w komunikacie, który ma zostać przekierowany do strony Kontrola dostępu projektu, w której można utworzyć znacznik projektu. Aby utworzyć znacznik projektu, należy kwalifikować się do niego. Szczegółowe informacje na ten temat zawiera sekcja Ręczne dodawanie znacznika projektu.
Aby utworzyć znacznik projektu:
- Na karcie Zarządzanie wybierz stronę Kontrola dostępu , a następnie kliknij opcję Nowy znacznik dostępu w obszarze Znaczniki dostępu.
- Wprowadź nazwę, wybierz rolę Edytujący dla projektu, a następnie utwórz znacznik.
- Wróć do notatnika, kliknij ikonę Więcej na pasku narzędzi notatnika, a następnie kliknij opcję Wstaw znacznik projektu.
Funkcje produktu project-lib
Obiekt projektu, który został utworzony po zaimportowaniu biblioteki produktu project-lib
, prezentuje zestaw funkcji pogrupowanych w następujący sposób:
- Pobieranie informacji o projekcie
- Pobieranie plików
- Zapisz dane
- Odczyt danych z połączenia
- Pobieranie połączonych danych
Pobierz informacje o projekcie
Za pomocą poniższych funkcji można programowo pobierać informacje dotyczące projektów.
get_name()
Ta funkcja zwraca nazwę projektu.
get_description()
Ta funkcja zwraca opis projektu.
get_metadata()
Ta funkcja zwraca metadane projektu.
get_storage_metadata()
Ta funkcja zwraca metadane obiektowej pamięci masowej powiązanej z projektem.
get_project_bucket_name()
Ta funkcja zwraca nazwę porcji projektu w powiązanej składowaniu obiektów. Wszystkie pliki projektu są przechowywane w tym zasobniku.
get_files()
Ta funkcja zwraca listę plików w projekcie. Każdy element na zwróconej liście zawiera identyfikator i nazwę pliku. Lista zwróconych plików nie jest sortowana według żadnego kryterium i może ulec zmianie po ponownym wywołaniu funkcji.
get_assets()
Ta funkcja zwraca listę wszystkich zasobów aplikacyjnych projektu. Opcjonalny parametr
assetType
można przekazać do funkcjiget_assets
, która umożliwia filtrowanie zasobów według typu. Dopuszczalne wartości dla tego parametru to:data_asset
,connection
iasset
. Wartośćasset
zwraca wszystkie zasoby aplikacyjne w projekcie. Na przykład, aby pobrać tylko zasoby danych, należy użyć funkcjiget_assets("data_asset")
.get_connections()
Ta funkcja zwraca listę połączeń, które są dostępne w projekcie. Każdy element na zwróconej liście zawiera identyfikator i nazwę połączenia.
Pobierz pliki
Do pobrania plików zapisanych w pamięci masowej obiektu powiązanej z projektem można użyć następujących funkcji.
Pliki można pobierać na dwa sposoby:
get_file_url(filename)
, gdziefilename
jest nazwą pliku, który ma zostać pobrany.Ta funkcja zwraca adres URL w celu pobrania pliku z pamięci masowej obiektu przy użyciu Spark. Adres URL jest tworzony w oparciu o typ obiektowej pamięci masowej powiązanej z projektem. Konfiguracje Hadoop są ustawiane automatycznie podczas interakcji z obiektową pamięcią masową projektu.
W poniższym przykładzie przedstawiono sposób użycia tej funkcji w celu pobrania danych z pamięci masowej obiektów za pomocą Spark:
# Import the lib library(projectLib) project <- projectLib::Project$new(sc, "<ProjectId>", "<ProjectToken>") # Get the url url <- project$get_file_url("myFile.csv") # Fetch the CSV file from the object storage using Spark invisible(sparkR.session(appName = "SparkSession R")) df.data <- read.df( url, source = "org.apache.spark.sql.execution.datasources.csv.CSVFileFormat", header = "true") head(df.data)
get_file(filename)
, gdziefilename
jest nazwą pliku, który ma zostać pobrany.Ta funkcja pobiera plik do pamięci z uruchomionym jądrem. Funkcja zwraca bufor bajtowy, który może być użyty do powiązania ze strukturami danych specyficznymi dla jądra, na przykład ramką danych R. Ta metoda pobierania plików nie jest zalecana w przypadku bardzo dużych plików.
W poniższym przykładzie przedstawiono sposób pobrania pliku i odczytania danych w ramce danych R:
# Import project lib library(projectLib) project <- projectLib::Project$new(sc , "<ProjectId>", "<ProjectToken>") # Fetch data my.file <- project$get_file("my_file.csv") # Read the CSV data file into a data frame df.data <- read.csv(text = rawToChar(my.file)) head(df.data)
Zapisz dane
Do zapisania danych w obiektowej pamięci masowej powiązanej z projektem można użyć następującej funkcji. Dane zostaną dodane jako plik do zasobnika projektu w powiązanej Cloud Object Storage. Ta funkcja wykonuje wiele czynności. Po pierwsze, umieszcza dane w obiektowej pamięci masowej, a następnie dodaje te dane jako zasób danych do projektu, dzięki czemu można zobaczyć dane zapisane jako plik na liście zasobów danych w projekcie.
save_data(filename, data, setProjectAsset=TRUE, overwrite=FALSE)
Funkcja przyjmuje następujące parametry:
filename
: nazwa utworzonego pliku.data
: dane do przesłania. Akceptowane typy dla tego parametru to surowe obiekty R lub bufory łańcuchowe.setProjectAsset[optional]
: dodaje plik do projektu jako zasób danych po pomyślnym przesłaniu danych do pamięci masowej obiektów. Przyjmuje ona wartość boolowką, a wartość true jest ustawiana domyślnie.overwrite[optional]
: nadpisuje plik, jeśli plik już istnieje w obiektowej pamięci masowej lub w projekcie. Domyślnie ustawiona jest wartość false.
Oto przykład, który pokazuje, jak można zapisywać dane do pliku w obiektowej pamięci masowej:
library("projectLib")
project <- access_project()
# Capture CSV data from console output
csv_lines <- capture.output(write.csv(df.data, row.names=FALSE), type="output")
csv_raw <- charToRaw(paste0(csv_lines, collapse='\n'))
project$save_data("file.csv", csv_raw)
Odczytywanie danych z połączenia
Aby pobrać metadane (informacje autoryzacyjne) danego połączenia, można użyć następującej funkcji.
get_connection
: funkcja przyjmuje jako dane wejściowe identyfikator połączenia lub nazwę połączenia. Wartości te można uzyskać, korzystając z funkcji get_assets()
, która zwraca id
, name
i type
wszystkich zasobów aplikacyjnych wymienionych w projekcie.
Funkcja get_connection
zwraca informacje autoryzacyjne połączenia, których można użyć do pobrania danych ze źródła danych połączenia.
Oto przykład, który pokazuje, jak można pobrać informacje autoryzacyjne połączenia za pomocą funkcji get_connection
:
# Import project lib
library(projectLib)
project <- projectLib::Project$new(sc , "<ProjectId>", "<ProjectToken>")
# Fetch connection
conn.cred <- project$get_connection(name="<ConnectionName>")
Jeśli połączenie jest połączeniem z bazą danych dashDB , na przykład można pobrać dane, uruchamiając następujący kod:
library(ibmdbR)
props <- paste("DASHDB;DATABASE=BLUDB;HOSTNAME=", conn.cred$host, ";PORT=50000;PROTOCOL=TCPIP;", sep="")
conn <- idaConnect(props, uid = conn.cred$username, pwd = conn.cred$password, conType = "odbc")
idaInit(conn)
idf.1 <- ida.data.frame('<TableName>')
head(idf.1)
Pobierz połączone dane
Aby pobrać informacje autoryzacyjne połączonych danych, można użyć następującej funkcji. Funkcja zwraca słownik, który zawiera referencje połączenia oprócz atrybutu datapath
, który wskazuje konkretne dane w tym połączeniu, na przykład tabelę w instancji dashDB lub bazę danych w instancji Cloudant .
get_connected_data
: ta funkcja przyjmuje jako dane wejściowe identyfikator połączonych danych lub nazwę połączonych danych. Wartości te można uzyskać, korzystając z funkcji get_assets()
, która zwraca id
, name
i type
wszystkich zasobów aplikacyjnych wymienionych w projekcie.
Oto przykład, który przedstawia sposób pobierania referencji połączonych danych w instancji dashDB za pomocą funkcji get_connected_data
:
# Import project lib
library(projectLib)
project <- projectLib::Project$new(sc , "<ProjectId>", "<ProjectToken>")
# Fetch credentials of the connected data
conn.data <- project$get_connected_data(id="<ConnectedDataId>")
Temat nadrzędny: Ładowanie i uzyskiwanie dostępu do danych w notatniku