project-lib for Python (더 이상 사용되지 않음)

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

Python용 project-lib 라이브러리를 사용하여 파일 및 연결을 포함한 프로젝트 메타데이터 및 자산에 액세스할 수 있습니다. 이 라이브러리에는 프로젝트와 관련된 파일을 가져오는 작업을 간소화하는 함수들도 포함되어 있습니다.

Python 용 project-lib 라이브러리는 더 이상 사용되지 않으며 Python용 ibm-watson-studio-lib 라이브러리로 대체되었습니다. 여전히 project-lib 라이브러리를 사용할 수 있지만 노트북에서 ibm-watson-studio-lib 라이브러리 사용을 시작해야 합니다. Python를 참조하십시오.

참고:

project-lib 라이브러리는 25.1 런타임에서 제거됩니다. 이전 런타임에서는 project-lib 을 계속 사용할 수 있습니다.

참고:


- project-lib 함수는 파일에 데이터를 저장하거나 파일에서 데이터를 가져올 때 데이터를 인코딩하거나 디코딩하지 않습니다.
- project-lib 함수를 사용하여 연결된 폴더 자산 ( Cloud Object Storage의 경로에 있는 파일) 에 액세스할 수 없습니다.

project-lib 함수

라이브러리를 project-lib 임포트한 후 생성되는 인스턴스화된 프로젝트 객체는 다음과 같이 그룹화된 일련의 함수들을 제공합니다:

프로젝트 정보 가져오기

다음 함수를 사용하여 프로그래밍 방식으로 프로젝트 관련 정보를 가져올 수 있습니다:

  • get_name()

    이 함수는 프로젝트의 이름을 반환합니다.

  • get_description()

    이 함수는 프로젝트에 대한 설명을 반환합니다.

  • get_metadata()

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

  • get_files()

    이 함수는 프로젝트에 포함된 파일 목록을 반환합니다. 반환된 목록의 각 항목에는 파일의 ID와 이름이 포함되어 있습니다. 반환되는 파일 목록은 특정 기준에 따라 정렬되지 않으며, 함수를 다시 호출하면 변경될 수 있습니다.

  • get_assets()

    이 함수는 모든 프로젝트 자산의 목록을 반환합니다. 함수에 선택적 asset_type 매개변수를 전달하면 get_assets 자산 유형별로 필터링할 수 있습니다. 이 매개변수의 허용 값은, connectiondata_asset 입니다 asset. 이 메서드는 프로젝트에 asset 포함된 모든 자산을 반환합니다. 예를 들어, 데이터 자산만 가져오려면 해당 함수를 사용하세요 get_assets("data_asset").

  • get_connections()

    이 함수는 프로젝트에 있는 연결 목록을 반환합니다. 반환된 목록의 각 항목에는 연결의 ID와 이름이 포함되어 있습니다.

파일 가져오기

다음 함수를 사용하여 프로젝트와 연관된 파일을 페치할 수 있습니다.

  • get_file(file_name) 여기서 file_name 는 가져오려는 파일의 이름입니다.

    이 함수는 파일을 실행 중인 커널의 메모리로 불러옵니다. 이 함수는 커널별 데이터 구조체(예: pandas의 ` DataFrame `)에 바인딩하는 데 사용할 수 있는 바이트 버퍼를 반환합니다. 파일 크기가 매우 큰 경우에는 이 파일 가져오기 방법을 권장하지 않습니다.

    다음 예제는 파일을 가져와 데이터를 pandas에 읽어들이는 방법을 보여줍니다. DataFrame:

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

데이터 저장

다음 기능을 사용하여 프로젝트와 연관된 파일에 데이터를 저장할 수 있습니다. 이 함수는 여러 가지 기능을 수행합니다. 먼저 데이터를 파일에 넣은 후 이 데이터를 프로젝트에 데이터 자산으로 추가하여 프로젝트의 데이터 자산 목록에서 파일로 저장한 데이터를 볼 수 있습니다.

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

이 함수는 다음 매개변수를 받습니다:

  • file_name: 생성된 파일의 이름.

  • data: 업로드할 데이터. 이는 바이트 버퍼나 문자열 버퍼와 같이 유형이 인 모든 객체일 file-like-object 수 있습니다.

    참고: 로드할 데이터의 크기는 2GB를 초과할 수 없습니다.
  • set_project_asset[optional]: 데이터가 파일에 성공적으로 업로드된 후 파일을 데이터 자산으로 프로젝트에 추가합니다. 이 함수는 부울 값을 받으며, 기본값은 true로 설정되어 있습니다.

  • overwrite[optional]: 파일이 이미 있는 경우 파일을 겹쳐씁니다. 기본값은 false로 설정되어 있습니다.

다음은 데이터를 파일에 저장하는 방법을 보여주는 예제입니다.

# Import the lib
from project_lib import Project
project = Project.access()

# let's assume you have the pandas DataFrame  pandas_df which contains the data
# you want to save 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 and file_name
# upon successful saving of the data

연결에서 데이터를 읽기

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

get_connection: 이 함수는 연결 ID 또는 연결 이름을 입력으로 받습니다. project에 나열된 모든 자산의, nametypeid값을 반환하는 함수를 get_assets() 사용하여 이 값들을 얻을 수 있습니다.

이 함수는 연결 데이터 소스에서 데이터를 가져오는 get_connection 데 사용할 수 있는 연결 자격 증명을 반환합니다.

다음은 해당 get_connection 함수를 사용하여 연결의 인증 정보를 가져오는 방법을 보여주는 예시입니다:


# Import the lib
from project_lib import Project
      project = Project.access()

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

예를 들어, 연결 대상이 dashDB 인 경우 다음 코드를 실행하여 데이터를 가져올 수 있습니다:

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()

연결된 데이터 가져오기

연결된 데이터의 인증 정보를 가져오려면 다음 함수를 사용할 수 있습니다. 이 함수는 연결 자격 증명을 포함하는 사전과 더불어, 해당 연결 내의 특정 데이터(예: dashDB 인스턴스의 테이블이나 Cloudant 인스턴스의 데이터베이스)를 가리키는 속성을 datapath 반환합니다.

get_connected_data: 이 함수는 연결된 데이터의 ID 또는 이름을 입력으로 받습니다. project에 나열된 모든 자산의, nametypeid값을 반환하는 함수를 get_assets() 사용하여 이 값들을 얻을 수 있습니다.

다음은 ` dashDB ` 인스턴스에서 `function get_connected_data `을 사용하여 연결된 데이터의 자격 증명을 가져오는 방법을 보여주는 예시입니다:

# Import the lib
from project_lib import Project
project = Project.access()

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, for example:
# creds: {'database': 'DB_NAME',
# 'datapath': '/DASHDB/SAMPLE_TABLE',
# 'host': 'hostname',
# 'password': 'XXXX',
# 'sg_service_url': 'https://sgmanager.ng.bluemix.net',
# 'username': 'XXXX'}

자세히 알아보기

이 기능들의 데모는 블로그 게시물에서 확인하실 수 있습니다.