

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 步驟 4：準備 Amazon Keyspaces 中的來源資料和目標資料表
<a name="spark-tutorial-step4"></a>

在此步驟中，您會使用範例資料和 Amazon Keyspaces 資料表建立來源檔案。

1. 建立來源檔案。您可以選擇下列其中一個選項：
   + 在本教學課程中，您會使用逗號分隔值 (CSV) 檔案，其名稱`keyspaces_sample_table.csv`為資料遷移的來源檔案。提供的範例檔案包含名稱為 之資料表的幾列資料`book_awards`。

     1. 下載以下封存檔案 [samplemigration.zip](samples/samplemigration.zip) 中包含的範例 CSV 檔案 (`keyspaces_sample_table.csv`)。解壓縮封存，並記下 的路徑`keyspaces_sample_table.csv`。
   + 如果您想要遵循自己的 CSV 檔案，將資料寫入 Amazon Keyspaces，請確定資料已隨機化。直接從資料庫讀取或匯出至一般檔案的資料，通常由分割區和主索引鍵排序。將排序資料匯入 Amazon Keyspaces 可能會導致它寫入 Amazon Keyspaces 分割區的較小區段，這會導致流量分佈不均勻。這可能會導致效能較慢和錯誤率較高。

     相反地，隨機化資料有助於透過更均勻地跨分割區分配流量，來利用 Amazon Keyspaces 的內建負載平衡功能。您可以使用各種工具來隨機化資料。如需使用開放原始碼工具 [Shuf](https://en.wikipedia.org/wiki/Shuf) 的範例，請參閱 資料遷移教學[步驟 2：使用 DSBulk 準備要上傳的資料](dsbulk-upload-prepare-data.md)中的 。以下是示範如何以 隨機播放資料的範例`DataFrame`。

     ```
     import org.apache.spark.sql.functions.randval
     shuffledDF = dataframe.orderBy(rand())
     ```

1. 在 Amazon Keyspaces 中建立目標金鑰空間和資料表。

   1. 使用 連線至 Amazon Keyspaces`cqlsh-expansion`。如需`cqlsh-expansion`安裝說明，請參閱 [使用 `cqlsh-expansion` 連線至 Amazon Keyspaces](programmatic.cqlsh.md#using_cqlsh)。

      將下列範例中的服務端點取代為您自己的值。

      ```
      cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
      ```

   1. 建立名稱為 的新金鑰空間`catalog`，如下列範例所示。

      ```
      CREATE KEYSPACE catalog WITH REPLICATION = {'class': 'SingleRegionStrategy'};
      ```

   1. 在新的金鑰空間狀態為可用之後，請使用下列程式碼來建立目標資料表 `book_awards`。若要進一步了解非同步資源建立以及如何檢查資源是否可用，請參閱 [檢查 Amazon Keyspaces 中的金鑰空間建立狀態](keyspaces-create.md)。

      ```
      CREATE TABLE catalog.book_awards (
         year int,
         award text,
         rank int, 
         category text,
         book_title text,
         author text, 
         publisher text,
         PRIMARY KEY ((year, award), category, rank)
         );
      ```