日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

TableWriter API

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

您可以使用TableWriter API對MaxCompute表進行讀寫。

警告

公共云GPU服務器即將過保下線,您可以繼續提交CPU版本的TensorFlow任務。如需使用GPU進行模型訓練,請前往DLC提交任務,具體操作請參見創建訓練任務

讀寫MaxCompute表的功能由tensorflow.python_io.TableWriter提供,可以在TensorFlow的Graph執行邏輯以外,直接對MaxCompute表進行操作。

說明

PAI-TF作業執行過程中,寫入MaxCompute表的數據,必須在作業正常結束以后,才能通過TableWriter API訪問。如果作業正在運行或異常退出,則無法訪問。

創建Writer并打開表

初始化TableWriter將打開一個MaxCompute表并返回Writer對象。接口定義如下。

writer = tf.python_io.TableWriter(table, slice_id=0)
  • table:string類型,表示需要打開的MaxCompute表名。該參數需要與PAI命令-Doutput中的輸出表名一致,否則系統報table xxx not predefined錯誤。

  • slice_id:int類型,表示在表的不同分區進行寫入,避免寫沖突。單機場景下,使用默認值0即可。分布式場景下,如果多個worker(包括PS)同時使用相同的slice_id寫入數據,則會導致寫入失敗。

重要

每次打開一張表,相當于打開一張空表,即原表中的數據被清空。

寫入記錄

將數據寫入已打開表的對應列,該寫入數據必須在關閉表之后才能讀取。接口定義如下。

writer.write(values, indices)
  • values:表示寫入的單行或多行數據。

    • 如果寫入單行數據,則傳入一個由標量組成的Tuple、List或1D-Ndarray。其中List和1D-Ndarray表示寫入的各列數據類型相同。

    • 如果寫入N(N>=1)行數據,則傳入一個List或1D-Ndarray,參數中的每個元素對應一個單行數據(Tuple、List或以Structure為元素的Ndarray)。

  • indices:表示數據寫入的列,支持由整型index組成的Tuple、List或1D-Ndarray類型。indices中的每個數對應表的每一列(列數從0開始計算)。

關閉表

接口定義如下。

writer.close()

with語句塊中,無需顯示調用close()關閉表。

重要

關閉表之后,如果使用open命令重新打開表,則表中原數據被清空。

通過with語句使用TableWriter

TableWriter支持通過with語句管理上下文,示例代碼如下。

with tf.python_io.TableWriter(table) as writer:
    # Prepare values for writing.
    writer.write(values, incides)
    # Table would be closed automatically outside this section,

示例

  1. 在project中新建一張含有4列元素的MaxCompute表test_write,表的列名及數據類型如下。

    具體操作,請參見創建并使用MaxCompute表

    ColumnName

    ColumnType

    uid

    bigint

    name

    string

    price

    double

    virtual

    bool

  2. 使用Python命令,并配置-Doutputsodps://project/tables/test_write,將如下表格中的數據寫入test_write表。

    uid

    name

    price

    virtual

    25

    "Apple"

    5.0

    False

    38

    "Pear"

    4.5

    False

    17

    "Watermelon”

    2.2

    False

    # table_writer_test.py文件。
    
    import tensorflow as tf
    
    # Prepare data, 準備數據。
    values = [(25, "Apple", 5.0, False),
              (38, "Pear", 4.5, False),
              (17, "Watermelon", 2.2, False)]
    
    # Open a table,打開一個表并返回writer對象。
    writer = tf.python_io.TableWriter("odps://project/tables/test")
    
    # Write records to the 0~3 columns of the table,將數據寫入表的第0~3列。
    records = writer.write(values, indices=[0, 1, 2, 3])
    
    # Close the table,關閉表和Writer。
    writer.close()
  3. 提交任務至PAI-TF,并執行任務。

    $ odpscmd -e "pai -name tensorflow140 -Dscript=<absolute_path_of_script>/table_writer_test.py -Doutputs=odps://project/tables/test_write ;"