0 / 0
영어 버전 문서로 돌아가기
r용 프로젝트 라이브러리
마지막 업데이트 날짜: 2024년 10월 04일
r용 프로젝트 라이브러리

노트북에서 Watson Studio 프로젝트 및 프로젝트 에셋과 상호 작용해야 하는 경우, R용 project-lib 라이브러리를 사용할 수 있습니다. 라이브러리는 프로젝트에 대한 프로그래밍 인터페이스와 같습니다.

R용 project-lib 라이브러리를 사용하면 파일 및 연결을 포함한 프로젝트 메타데이터와 에셋에 액세스할 수 있습니다. 라이브러리에는 프로젝트와 연관된 파일 페치를 단순화하는 함수도 포함되어 있습니다.

참고:

  • project-lib 함수는 데이터를 저장하거나 데이터를 가져올 때 데이터를 인코드하거나 디코드하지 않습니다.
  • The project-lib functions can't be used to access connected folder assets (files on a path in Cloud Object Storage).

라이브러리 사용

R용 project-lib 라이브러리는 사전 설치되어 있으며 노트북 편집기의 노트북에서 직접 가져올 수 있습니다. 노트북에서 project-lib 라이브러리를 사용하려면 프로젝트의 ID 및 프로젝트 토큰이 필요합니다.

사용자의 노트북에 프로젝트 토큰을 삽입하려면 다음을 수행하십시오.

  1. 노트북 도구 모음에서 추가 아이콘을 클릭한 후 프로젝트 토큰 삽입을 클릭하십시오.

    프로젝트 토큰이 존재하면 다음 정보와 함께 셀이 노트북에 추가됩니다.

    library(projectLib)
    project <- projectLib::Project$new(sc, "<ProjectId>", "<ProjectToken>")
    

    sc는 Spark가 사용되는 경우 Spark 컨텍스트입니다. <ProjectId>는 프로젝트의 ID이며 <ProjectToken>은 프로젝트 토큰의 값입니다.

    프로젝트 토큰이 없다는 메시지가 표시되면 메시지의 링크를 클릭하여 프로젝트 토큰을 작성할 수 있는 프로젝트의 액세스 제어 페이지로 경로 재지정됩니다. 프로젝트 토큰을 작성할 수 있어야 합니다. 자세한 내용은 수동으로 프로젝트 토큰 추가를 참조하십시오.

    프로젝트 토큰을 작성하려면 다음을 수행하십시오.

    1. 관리 탭에서 액세스 제어 페이지를 선택하고 액세스 토큰 아래에서 새 액세스 토큰을 클릭하십시오.
    2. 이름을 입력하고, 프로젝트의 편집기 역할을 선택한 후 토큰을 작성하십시오.
    3. 노트북으로 돌아가 노트북 도구 모음에서 추가 아이콘을 클릭한 후 프로젝트 토큰 삽입을 클릭하십시오.

project-lib 함수

project-lib 라이브러리를 가져온 후 작성된 인스턴스화된 프로젝트 오브젝트는 다음 방법으로 그룹화된 함수 세트를 표시합니다.

프로젝트 정보 페치

다음 함수를 사용하여 프로젝트 관련 정보를 프로그래밍 방식으로 페치할 수 있습니다.

  • get_name()

    이 함수는 프로젝트의 이름을 리턴합니다.

  • get_description()

    이 함수는 프로젝트의 설명을 리턴합니다.

  • get_metadata()

    이 함수는 프로젝트 메타데이터를 리턴합니다.

  • get_storage_metadata()

    이 함수는 프로젝트와 연관된 오브젝트 스토리지의 메타데이터를 리턴합니다.

  • get_project_bucket_name()

    이 함수는 연관된 오브젝트 스토리지의 프로젝트 버킷 이름을 리턴합니다. 모든 프로젝트 파일은 이 버킷에 저장됩니다.

  • get_files()

    이 함수는 프로젝트의 파일 목록을 리턴합니다. 리턴된 목록에서 각 요소는 파일의 ID와 이름을 포함합니다. 리턴된 파일 목록은 임의의 기준으로 정렬되지 않으며 함수를 다시 호출할 때 변경될 수 있습니다.

  • get_assets()

    이 함수는 모든 프로젝트 자산 목록을 리턴합니다. 선택적 매개변수 assetType을(를) 유형별로 자산을 필터링할 수 있는 get_assets 함수에 전달할 수 있습니다. 이 매개변수에 허용되는 값은 data_asset, connectionasset입니다. asset 값은 프로젝트의 모든 자산을 리턴합니다. 예를 들어, 데이터 자산만 가져오려면 get_assets("data_asset") 함수를 사용하십시오.

  • get_connections()

    이 함수는 프로젝트에 있는 연결 목록을 리턴합니다. 리턴된 목록에서 각 요소는 연결의 ID와 이름을 포함합니다.

파일 페치

다음 함수를 사용하여 프로젝트와 연관된 오브젝트 스토리지에 저장된 파일을 페치할 수 있습니다.

다음 두 가지 방법으로 파일을 페치할 수 있습니다.

  • get_file_url(filename) 여기서 filename은(는) 페치할 파일의 이름입니다.

    이 함수는 Spark를 사용하여 오브젝트 스토리지에서 파일을 페치하기 위한 URL을 리턴합니다. URL은 프로젝트와 연관된 오브젝트 스토리지의 유형을 기반으로 구성됩니다. 프로젝트의 오브젝트 스토리지와 상호작용할 때 하둡 구성은 자동으로 설정됩니다.

    다음 예제는 이 함수를 사용하여 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) 여기서 filename은(는) 페치할 파일의 이름입니다.

    이 함수는 파일을 실행 중인 커널의 메모리로 페치합니다. 이 함수는 R 데이터 프레임과 같은 커널 특정 데이터 구조에 바인드하는 데 사용할 수 있는 바이트 버퍼를 리턴합니다. 이 파일 페치 메소드는 매우 큰 파일에는 권장되지 않습니다.

    다음 예제는 파일을 페치하고 데이터를 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)
    

데이터 저장

다음 함수를 사용하여 프로젝트와 연관된 오브젝트 스토리지에 데이터를 저장할 수 있습니다. 데이터는 연관된 Cloud Object Storage의 프로젝트 버킷에 파일로 추가됩니다. 이 함수는 여러 작업을 수행합니다. 먼저 데이터를 오브젝트 스토리지에 배치한 다음 이 데이터를 프로젝트에 데이터 자산으로 추가하면 프로젝트의 데이터 자산 목록에서 파일로 저장한 데이터를 볼 수 있습니다.

save_data(filename, data, setProjectAsset=TRUE, overwrite=FALSE)

함수는 다음 매개변수를 사용합니다.

  • filename: 작성된 파일의 이름.
  • data: 업로드할 데이터. 이 매개변수에 허용되는 유형은 R 원시 오브젝트 또는 문자열 버퍼입니다.
  • setProjectAsset[optional]: 데이터가 오브젝트 스토리지에 성공적으로 업로드된 후 프로젝트에 파일을 데이터 자산으로 추가합니다. 부울 값을 사용하며 기본적으로 true 값이 설정됩니다.
  • overwrite[optional]: 파일이 오브젝트 스토리지 또는 프로젝트에 이미 있는 경우 파일을 겹쳐씁니다. 이는 기본적으로 false로 설정됩니다.

다음은 오브젝트 스토리지의 파일에 데이터를 저장하는 방법을 보여주는 예입니다.

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)

연결에서 데이터 읽기

다음 함수를 사용하여 지정된 연결의 메타데이터(인증 정보)를 가져올 수 있습니다.

get_connection: 함수는 연결의 ID 또는 연결 이름을 입력으로 사용합니다. 프로젝트에 나열된 모든 자산의 id, nametype을(를) 리턴하는 get_assets() 함수를 사용하여 이러한 값을 얻을 수 있습니다.

get_connection 함수는 연결 데이터 소스에서 데이터를 페치하는 데 사용할 수 있는 연결 신임 정보를 리턴합니다.

다음은 get_connection 함수를 사용하여 연결의 신임 정보를 페치하는 방법을 보여주는 예제입니다.

# Import project lib
library(projectLib)
project <- projectLib::Project$new(sc , "<ProjectId>", "<ProjectToken>")

# Fetch connection
conn.cred <- project$get_connection(name="<ConnectionName>")

예를 들어 연결이 dashDB에 대한 연결인 경우 다음 코드를 실행하여 데이터를 페치할 수 있습니다.

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)

연결된 데이터 페치

다음 함수를 사용하여 연결된 데이터의 인증 정보를 페치할 수 있습니다. 이 함수는 해당 연결의 특정 데이터를 가리키는 datapath 속성(예: dashDB 인스턴스의 테이블 또는 Cloudant 인스턴스의 데이터베이스)을 포함하는 사전을 리턴합니다.

get_connected_data: 이 함수는 연결된 데이터의 ID 또는 연결된 데이터의 이름을 입력으로 사용합니다. 프로젝트에 나열된 모든 자산의 id, nametype을(를) 리턴하는 get_assets() 함수를 사용하여 이러한 값을 얻을 수 있습니다.

다음은 get_connected_data 함수를 사용하여 dashDB 인스턴스에서 연결된 데이터의 신임 정보를 페치하는 방법을 보여주는 예제입니다.

# 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>")

상위 주제: 노트북의 데이터 로드 및 액세스