每個支援的內核都提供內置功能,允許您從筆記本內的資料集中讀取平台資料。 Adobe Experience Platform Data Science Workspace中的JupyterLab目前支援R、PySpark Python和Scala的筆記型電腦。 但是,對分頁資料的支援僅限於 Python 和R筆記本。 本指南重點介紹如何使用JupyterLab筆記型電腦訪問資料。
在閱讀本指南之前,請先閱讀 JupyterLab 使用指南 ,以取得資料科學工作區 JupyterLab 的高階簡介及其角色。
對於PySpark和Scala筆記本,如果您收到錯誤,並且原因是「遠程RPC客戶端斷開關聯」。 這通常表示驅動程式或執行器記憶體不足。 嘗試切換 至「批次」模式 ,以解決此錯誤。
以下資訊定義可讀取的資料量上限、使用的資料類型,以及讀取資料所花費的估計時間範圍。
對於 Python 和R ,使用配置為40GB RAM的筆記型電腦伺服器作為基準。 對於PySpark和Scala,以下概述的基準使用了以64GB RAM、8個內核、2個DBU(最多4個工作人員)配置的資料庫群集。
使用的ExperienceEvent架構資料的大小不同,從1000(1K)列開始,最多可達10億(1B)列。 請注意,對於PySpark和 Spark 度量,XDM資料的日期範圍是10天。
臨機架構資料是使用「以選取方式建立表 Query Service 格」(CTAS)預先處理。 這些資料的大小也從1,000列(1K)開始,最多10億列(1B)。
使用PySpark和Scala筆記型電腦讀取資料集時,您可以選擇使用互動模式或批次模式來讀取資料集。 互動式可快速產生結果,而批次模式則適用於大型資料集。
XDM ExperienceEvent架構: 在不到22分鐘內,您最多可以讀取200萬行(磁碟上約6.1 GB的資料)的XDM資料。 新增其他列可能會導致錯誤。
行數 | 1K | 10K | 100K | 1M | 2M |
---|---|---|---|---|---|
磁碟大小(MB) | 18.73 | 187.5 | 308 | 3000 | 6050 |
SDK(以秒為單位) | 20.3 | 86.8 | 63 | 659 | 1315 |
臨機架構: 在不到14分鐘內,您最多可讀取500萬行(磁碟上約5.6 GB資料)的非XDM(臨機)資料。 新增其他列可能會導致錯誤。
行數 | 1K | 10K | 100K | 1M | 2M | 3M | 5M |
---|---|---|---|---|---|---|---|
磁碟大小(MB) | 1.21 | 11.72 | 115 | 1120 | 2250 | 3380 | 5630 |
SDK(以秒為單位) | 7.27 | 9.04 | 27.3 | 180 | 346 | 487 | 819 |
XDM ExperienceEvent架構: 在13分鐘內,您最多可讀取100萬行XDM資料(磁碟上的3GB資料)。
行數 | 1K | 10K | 100K | 1M |
---|---|---|---|---|
磁碟大小(MB) | 18.73 | 187.5 | 308 | 3000 |
R內核(以秒為單位) | 14.03 | 69.6 | 86.8 | 775 |
臨機架構: 您應能在大約10分鐘內讀取最多300萬列的臨機資料(293MB的磁碟資料)。
行數 | 1K | 10K | 100K | 1M | 2M | 3M |
---|---|---|---|---|---|---|
磁碟大小(MB) | 0.082 | 0.612 | 9.0 | 91 | 188 | 293 |
R SDK(秒) | 7.7 | 4.58 | 35.9 | 233 | 470.5 | 603 |
XDM ExperienceEvent架構: 在互動模式下,您最多可在約20分鐘內讀取500萬行(磁碟上約13.42GB的資料)的XDM資料。 互動式模式最多只支援5百萬列。 如果您想要讀取較大的資料集,建議您切換到批處理模式。 在批處理模式下,您應能在大約14小時內讀取XDM資料的最多5億行(磁碟上約1.31TB資料)。
行數 | 1K | 10K | 100K | 1M | 2M | 3M | 5M | 10M | 50M | 100M | 500M |
---|---|---|---|---|---|---|---|---|---|---|---|
磁碟大小 | 2.93MB | 4.38MB | 29.02 | 2.69 GB | 5.39 GB | 8.09 GB | 13.42 GB | 26.82 GB | 134.24 GB | 268.39 GB | 1.31TB |
SDK(互動模式) | 33s | 32.4s | 55.1s | 253.5s | 489.2s | 729.6s | 1206.8s | - | - | - | - |
SDK(批次模式) | 815.8s | 492.8s | 379.1s | 637.4s | 624.5s | 869.2s | 1104.1s | 1786s | 5387.2s | 10624.6s | 50547s |
臨機架構: 在互動模式下,您最多可在3分鐘內讀取500萬行(磁碟上約5.36GB的資料)的非XDM資料。 在批處理模式下,您應能在大約18分鐘內讀取非XDM資料的10億行(磁碟上約1.05TB資料)。
行數 | 1K | 10K | 100K | 1M | 2M | 3M | 5M | 10M | 50M | 100M | 500M | 1B |
---|---|---|---|---|---|---|---|---|---|---|---|---|
磁碟大小 | 1.12MB | 11.24MB | 109.48MB | 2.69 GB | 2.14 GB | 3.21 GB | 5.36 GB | 10.71 GB | 53.58 GB | 107.52 GB | 535.88 GB | 1.05TB |
SDK互動模式(以秒為單位) | 28.2s | 18.6s | 20.8s | 20.9s | 23.8s | 21.7s | 24.7s | - | - | - | - | - |
SDK批次模式(以秒為單位) | 428.8s | 578.8s | 641.4s | 538.5s | 630.9s | 467.3s | 411s | 675s | 702s | 719.2s | 1022.1s | 1122.3s |
XDM ExperienceEvent架構: 在互動模式下,您最多可在18分鐘內讀取500萬行(磁碟上約13.42GB的資料)的XDM資料。 互動式模式最多只支援5百萬列。 如果您想要讀取較大的資料集,建議您切換到批處理模式。 在批處理模式下,您應能在大約14小時內讀取XDM資料的最多5億行(磁碟上約1.31TB資料)。
行數 | 1K | 10K | 100K | 1M | 2M | 3M | 5M | 10M | 50M | 100M | 500M |
---|---|---|---|---|---|---|---|---|---|---|---|
磁碟大小 | 2.93MB | 4.38MB | 29.02 | 2.69 GB | 5.39 GB | 8.09 GB | 13.42 GB | 26.82 GB | 134.24 GB | 268.39 GB | 1.31TB |
SDK互動模式(以秒為單位) | 37.9s | 22.7s | 45.6s | 231.7s | 444.7s | 660.6s | 1100s | - | - | - | - |
SDK批次模式(以秒為單位) | 374.4s | 398.5s | 527s | 487.9s | 588.9s | 829s | 939.1s | 1441s | 5473.2s | 10118.8 | 49207.6 |
臨機架構: 在互動模式下,您最多可在3分鐘內讀取500萬行(磁碟上約5.36GB的資料)的非XDM資料。 在批處理模式下,您應能在大約16分鐘內讀取非XDM資料的10億行(磁碟上約1.05TB資料)。
行數 | 1K | 10K | 100K | 1M | 2M | 3M | 5M | 10M | 50M | 100M | 500M | 1B |
---|---|---|---|---|---|---|---|---|---|---|---|---|
磁碟大小 | 1.12MB | 11.24MB | 109.48MB | 2.69 GB | 2.14 GB | 3.21 GB | 5.36 GB | 10.71 GB | 53.58 GB | 107.52 GB | 535.88 GB | 1.05TB |
SDK互動模式(以秒為單位) | 35.7s | 31s | 19.5s | 25.3s | 23s | 33.2s | 25.5s | - | - | - | - | - |
SDK批次模式(以秒為單位) | 448.8s | 459.7s | 519s | 475.8s | 599.9s | 347.6s | 407.8s | 397s | 518.8s | 487.9s | 760.2s | 975.4s |
Python 筆記型電腦允許您在訪問資料集時分頁資料。 下面顯示有分頁和無分頁讀取資料的范常式式碼。 有關可用啟動程式Python筆記本的詳細資訊,請訪問JupyterLab用戶指 JupyterLab 南中的 Launcher部分。
下面的Python文檔概述了以下概念:
不分頁:
執行下列程式碼會讀取整個資料集。 如果執行成功,則資料將保存為變數引用的Apcotis資料幀 df
。
# Python
from platform_sdk.dataset_reader import DatasetReader
dataset_reader = DatasetReader(get_platform_sdk_client_context(), dataset_id="{DATASET_ID}")
df = dataset_reader.read()
df.head()
使用分頁:
執行下列程式碼會讀取指定資料集的資料。 分頁是通過分別通過函式和函式限制和偏移資料 limit()
來實現 offset()
的。 限制資料是指要讀取的資料點數上限,而偏移指在讀取資料之前要跳過的資料點數。 如果讀取操作成功執行,則資料將被保存為變數引用的Apcotis資料幀 df
。
# Python
from platform_sdk.dataset_reader import DatasetReader
dataset_reader = DatasetReader(get_platform_sdk_client_context(), dataset_id="{DATASET_ID}")
df = dataset_reader.limit(100).offset(10).read()
要寫入JupyterLab筆記本中的資料集,請在JupyterLab的左側導航中選擇「資料」表徵圖頁籤(在下面突出顯示)。 此時將 顯示Dataset 和 Schemas目錄 。 選擇 資料集 ,然後按一下滑鼠右鍵,然後從您要使用的資料集上的下拉式選單中選取「在筆記型電腦中寫入資料 」選項。 可執行代碼條目出現在筆記本底部。
或者,您也可以複製並貼上下列程式碼儲存格。 同時更 {DATASET_ID}
換和 {PANDA_DATAFRAME}
。
from platform_sdk.models import Dataset
from platform_sdk.dataset_writer import DatasetWriter
dataset = Dataset(get_platform_sdk_client_context()).get_by_id(dataset_id="{DATASET_ID}")
dataset_writer = DatasetWriter(get_platform_sdk_client_context(), dataset)
write_tracker = dataset_writer.write({PANDA_DATAFRAME}, file_format='json')
JupyterLab on可 Platform 讓您在筆記型電腦中使 Python 用SQL透過 Adobe Experience Platform Query Service存取資料。 由於資料的運 Query Service 行時間優越,通過訪問資料對處理大型資料集非常有用。 請注意,使用查詢 Query Service 資料的處理時間限制為10分鐘。
在中使 Query Service 用 JupyterLab之前,請確定您對 Query Service SQL語法有正確的瞭解。
使用查詢 Query Service 資料需要提供目標資料集的名稱。 您可以使用「資料總管」來尋找所需的資料集,以產生必要的 程式碼儲存格。 在資料集清單上按一下滑鼠右鍵,然後按一下「筆記型 電腦中的查詢資料 」,在筆記型電腦中產生兩個程式碼儲存格。 下面將更詳細地列出這兩個儲存格。
為了在中使 Query Service 用, JupyterLab您必須首先在工作筆記本和之間建立 Python 連接 Query Service。 這可以通過執行第一生成單元來實現。
qs_connect()
在第二個生成的單元格中,第一行必須在SQL查詢之前定義。 預設情況下,生成的單元格定義一個可選變數(df0
),該變數將查詢結果保存為Pactices資料幀。
該 -c QS_CONNECTION
參數是強制的,它指示內核執行SQL查詢 Query Service。 有關其 他引數的清單 ,請參見附錄。
%%read_sql df0 -c QS_CONNECTION
SELECT *
FROM name_of_the_dataset
LIMIT 10
/* Querying table "name_of_the_dataset" (datasetId: {DATASET_ID})*/
Python變數可在SQL查詢中直接引用,方法是使用字串格式語法,並將變數包住大括弧({}
),如下列範例所示:
table_name = 'name_of_the_dataset'
table_columns = ','.join(['col_1','col_2','col_3'])
%%read_sql demo -c QS_CONNECTION
SELECT {table_columns}
FROM {table_name}
為了存取和篩選筆記型 ExperienceEvent 電腦中的資料集,您必須提供資料集的ID( Python{DATASET_ID}
),以及使用邏輯運算子定義特定時間範圍的篩選規則。 定義時間範圍時,會忽略任何指定的分頁,並考慮整個資料集。
篩選運算子的清單說明如下:
eq()
: Equal togt()
: Greater thange()
: Greater than or equal tolt()
: Less thanle()
: Less than or equal toAnd()
:邏輯AND運算子Or()
:邏輯OR運算子下列儲存格會將資料 ExperienceEvent 集篩選為2019年1月1日至2019年12月31日止期間僅存在的資料。
# Python
from platform_sdk.dataset_reader import DatasetReader
dataset_reader = DatasetReader(get_platform_sdk_client_context(), dataset_id="{DATASET_ID}")
df = dataset_reader.\
where(dataset_reader["timestamp"].gt("2019-01-01 00:00:00").\
And(dataset_reader["timestamp"].lt("2019-12-31 23:59:59"))\
).read()
R筆記型電腦允許您在訪問資料集時分頁資料。 下面顯示有分頁和無分頁讀取資料的范常式式碼。 有關可用啟動器R筆記本的詳細資訊,請訪問JupyterLab用戶指 JupyterLab 南中的 Launcher部分。
以下R檔案概述下列概念:
不分頁:
執行下列程式碼會讀取整個資料集。 如果執行成功,則資料將保存為變數引用的Apcotis資料幀 df0
。
# R
library(reticulate)
use_python("/usr/local/bin/ipython")
psdk <- import("platform_sdk")
datetime <- import("datetime", convert = FALSE)
py_run_file("~/.ipython/profile_default/startup/platform_sdk_context.py")
DatasetReader <- psdk$dataset_reader$DatasetReader
dataset_reader <- DatasetReader(py$get_platform_sdk_client_context(), dataset_id="{DATASET_ID}")
df0 <- dataset_reader$read()
head(df0)
使用分頁:
執行下列程式碼會讀取指定資料集的資料。 分頁是通過分別通過函式和函式限制和偏移資料 limit()
來實現 offset()
的。 限制資料是指要讀取的資料點數上限,而偏移指在讀取資料之前要跳過的資料點數。 如果讀取操作成功執行,則資料將被保存為變數引用的Apcotis資料幀 df0
。
# R
library(reticulate)
use_python("/usr/local/bin/ipython")
psdk <- import("platform_sdk")
datetime <- import("datetime", convert = FALSE)
py_run_file("~/.ipython/profile_default/startup/platform_sdk_context.py")
DatasetReader <- psdk$dataset_reader$DatasetReader
dataset_reader <- DatasetReader(py$get_platform_sdk_client_context(), dataset_id="{DATASET_ID}")
df0 <- dataset_reader$limit(100L)$offset(10L)$read()
要寫入JupyterLab筆記本中的資料集,請在JupyterLab的左側導航中選擇「資料」表徵圖頁籤(在下面突出顯示)。 此時將 顯示Dataset 和 Schemas目錄 。 選擇 資料集 ,然後按一下滑鼠右鍵,然後從您要使用的資料集上的下拉式選單中選取「在筆記型電腦中寫入資料 」選項。 可執行代碼條目出現在筆記本底部。
或者,您也可以複製並貼上下列程式碼儲存格:
psdk <- import("platform_sdk")
dataset <- psdk$models$Dataset(py$get_platform_sdk_client_context())$get_by_id(dataset_id="{DATASET_ID}")
dataset_writer <- psdk$dataset_writer$DatasetWriter(py$get_platform_sdk_client_context(), dataset)
write_tracker <- dataset_writer$write(df, file_format='json')
為了存取和篩選R筆記本 ExperienceEvent 中的資料集,您必須提供資料集的ID({DATASET_ID}
),以及使用邏輯運算子定義特定時間範圍的篩選規則。 定義時間範圍時,會忽略任何指定的分頁,並考慮整個資料集。
篩選運算子的清單說明如下:
eq()
: Equal togt()
: Greater thange()
: Greater than or equal tolt()
: Less thanle()
: Less than or equal toAnd()
:邏輯AND運算子Or()
:邏輯OR運算子下列儲存格會將資料 ExperienceEvent 集篩選為2019年1月1日至2019年12月31日止期間僅存在的資料。
# R
library(reticulate)
use_python("/usr/local/bin/ipython")
psdk <- import("platform_sdk")
datetime <- import("datetime", convert = FALSE)
py_run_file("~/.ipython/profile_default/startup/platform_sdk_context.py")
client_context <- py$PLATFORM_SDK_CLIENT_CONTEXT
DatasetReader <- psdk$dataset_reader$DatasetReader
dataset_reader <- DatasetReader(py$get_platform_sdk_client_context(), dataset_id="{DATASET_ID}")
df0 <- dataset_reader$
where(dataset_reader["timestamp"]$gt("2019-01-01 00:00:00")$
And(dataset_reader["timestamp"]$lt("2019-12-31 23:59:59"))
)$read()
下方的PySpark檔案概述下列概念:
所有 Spark 2.4筆記型電腦都要求您使用下列簡短字母組合代碼初始化會話。
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
隨著 Spark 2.4的推出, %dataset
PySpark 3(Spark 2.4)筆記型電腦也提供了自訂功能。 有關IPython內核中的magic命令的詳細資訊,請訪問 IPython magic文檔。
使用狀況
%dataset {action} --datasetId {id} --dataFrame {df}`
說明
用於 Data Science Workspace 從筆記本( PySpark 3內核)讀取或寫入資料集的自定Python 義魔術命令。
名稱 | 說明 | 必填 |
---|---|---|
{action} |
要在資料集上執行的動作類型。 有兩個動作是「讀取」或「寫入」。 | 是 |
--datasetId {id} |
用於提供要讀取或寫入的資料集的ID。 | 是 |
--dataFrame {df} |
熊貓資料框。
|
是 |
--mode |
其他參數會變更資料的讀取方式。 允許的參數為「批次」和「互動」。 依預設,模式會設為「互動」。 建議在讀取大量資料時使用「批次」模式。 | 無 |
查看筆記本資料限制部 分中的PySpark表 ,以 mode
確定應將其設定為 interactive
或 batch
。
範例
%dataset read --datasetId 5e68141134492718af974841 --dataFrame pd0
%dataset write --datasetId 5e68141134492718af974842 --dataFrame pd0
您可以使用下列方法,在JupyterLab購買中自動產生上述範例:
在JupyterLab的左側導覽中,選取「資料」圖示標籤(反白顯示如下)。 此時將 顯示Dataset 和 Schemas目錄 。 選擇 資料集 ,然後按一下滑鼠右鍵,然後從您要使用的資料集上的下拉式選單中選取「在筆記型電腦中寫入資料 」選項。 可執行代碼條目出現在筆記本底部。
要使用PySpark 3建立本地資料幀,請使用SQL查詢。 例如:
date_aggregation.createOrReplaceTempView("temp_df")
df = spark.sql('''
SELECT *
FROM sparkdf
''')
local_df
df = spark.sql('''
SELECT *
FROM sparkdf
LIMIT limit
''')
sample_df = df.sample(fraction)
您也可以指定選用的種子樣本,例如布林值withReplacement、雙分數或長種子。
在PySpark筆記型 ExperienceEvent 電腦中存取和篩選資料集時,您必須提供資料集識別({DATASET_ID}
)、組織的IMS識別,以及定義特定時間範圍的篩選規則。 篩選時間範圍是使用函式來定義的, spark.sql()
其中函式參數是SQL查詢字串。
下列儲存格會將資料 ExperienceEvent 集篩選為2019年1月1日至2019年12月31日止期間僅存在的資料。
# PySpark 3 (Spark 2.4)
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
%dataset read --datasetId {DATASET_ID} --dataFrame df
df.createOrReplaceTempView("event")
timepd = spark.sql("""
SELECT *
FROM event
WHERE timestamp > CAST('2019-01-01 00:00:00.0' AS TIMESTAMP)
AND timestamp < CAST('2019-12-31 23:59:59.9' AS TIMESTAMP)
""")
timepd.show()
以下檔案包含下列概念的範例:
所有Scala筆記型電腦都要求您使用以下簡短字母組合代碼初始化會話:
import org.apache.spark.sql.{ SparkSession }
val spark = SparkSession
.builder()
.master("local")
.getOrCreate()
在Scala中,您可匯入以 clientContext
取得並傳回平台值,如此就不需要定義變數,例如 var userToken
。 在以下的Scala範例中, clientContext
用於取得並傳回讀取資料集所需的所有值。
import org.apache.spark.sql.{Dataset, SparkSession}
import com.adobe.platform.token.ClientContext
val spark = SparkSession.builder().master("local").config("spark.sql.warehouse.dir", "/").getOrCreate()
val clientContext = ClientContext.getClientContext()
val df1 = spark.read.format("com.adobe.platform.query")
.option("user-token", clientContext.getUserToken())
.option("ims-org", clientContext.getOrgId())
.option("api-key", clientContext.getApiKey())
.option("service-token", clientContext.getServiceToken())
.option("sandbox-name", clientContext.getSandboxName())
.option("mode", "interactive")
.option("dataset-id", "5e68141134492718af974844")
.load()
df1.printSchema()
df1.show(10)
元素 | 說明 |
---|---|
df1 | 一個變數,它表示用於讀取和寫入資料的Pactys資料幀。 |
user-token | 使用自動擷取的使用者Token clientContext.getUserToken() 。 |
service-token | 您使用自動擷取的服務Token clientContext.getServiceToken() 。 |
ims-org | 您的IMS組織ID,會使用自動擷取 clientContext.getOrgId() 。 |
api-key | 使用自動擷取的API金鑰 clientContext.getApiKey() 。 |
查看筆記本資料限制部 分中的Scala表 ,以 mode
確定應設定為 interactive
還是 batch
。
您可以在JupyterLab購買中使用下列方法自動產生上述範例:
在JupyterLab的左側導覽中,選取「資料」圖示標籤(反白顯示如下)。 此時將 顯示Dataset 和 Schemas目錄 。 選擇 資料集 ,然後按一下滑鼠右鍵,然後從您要使用的資料集上的下拉式選單中選取「在筆記型電腦中 探索資料 」選項。 可執行代碼條目出現在筆記本底部。
和
在Scala中,您可匯入以 clientContext
取得並傳回平台值,如此就不需要定義變數,例如 var userToken
。 在下面的Scala範例中, clientContext
用於定義並傳回寫入資料集所需的所有必要值。
import org.apache.spark.sql.{Dataset, SparkSession}
import com.adobe.platform.token.ClientContext
val spark = SparkSession.builder().master("local").config("spark.sql.warehouse.dir", "/").getOrCreate()
val clientContext = ClientContext.getClientContext()
df1.write.format("com.adobe.platform.query")
.option("user-token", clientContext.getUserToken())
.option("service-token", clientContext.getServiceToken())
.option("ims-org", clientContext.getOrgId())
.option("api-key", clientContext.getApiKey())
.option("sandbox-name", clientContext.getSandboxName())
.option("mode", "interactive")
.option("dataset-id", "5e68141134492718af974844")
.save()
元素 | 描述 |
---|---|
df1 | 一個變數,它表示用於讀取和寫入資料的Pactys資料幀。 |
user-token | 使用自動擷取的使用者Token clientContext.getUserToken() 。 |
service-token | 您使用自動擷取的服務Token clientContext.getServiceToken() 。 |
ims-org | 您的IMS組織ID,會使用自動擷取 clientContext.getOrgId() 。 |
api-key | 使用自動擷取的API金鑰 clientContext.getApiKey() 。 |
查看筆記本資料限制部 分中的Scala表 ,以 mode
確定應設定為 interactive
還是 batch
。
要使用Scala建立本地資料幀,需要SQL查詢。 例如:
sparkdf.createOrReplaceTempView("sparkdf")
val localdf = spark.sql("SELECT * FROM sparkdf LIMIT 1)
存取和篩選 ExperienceEvent Scala筆記型電腦中的資料集時,您必須提供資料集識別({DATASET_ID}
)、貴組織的IMS識別,以及定義特定時間範圍的篩選規則。 篩選時間範圍是使用函式定義的,其 spark.sql()
中函式參數是SQL查詢字串。
下列儲存格會將資料 ExperienceEvent 集篩選為2019年1月1日至2019年12月31日止期間僅存在的資料。
// Spark (Spark 2.4)
// Turn off extra logging
import org.apache.log4j.{Level, Logger}
Logger.getLogger("org").setLevel(Level.OFF)
Logger.getLogger("com").setLevel(Level.OFF)
import org.apache.spark.sql.{Dataset, SparkSession}
val spark = org.apache.spark.sql.SparkSession.builder().appName("Notebook")
.master("local")
.getOrCreate()
// Stage Exploratory
val dataSetId: String = "{DATASET_ID}"
val orgId: String = sys.env("IMS_ORG_ID")
val clientId: String = sys.env("PYDASDK_IMS_CLIENT_ID")
val userToken: String = sys.env("PYDASDK_IMS_USER_TOKEN")
val serviceToken: String = sys.env("PYDASDK_IMS_SERVICE_TOKEN")
val mode: String = "batch"
var df = spark.read.format("com.adobe.platform.query")
.option("user-token", userToken)
.option("ims-org", orgId)
.option("api-key", clientId)
.option("mode", mode)
.option("dataset-id", dataSetId)
.option("service-token", serviceToken)
.load()
df.createOrReplaceTempView("event")
val timedf = spark.sql("""
SELECT *
FROM event
WHERE timestamp > CAST('2019-01-01 00:00:00.0' AS TIMESTAMP)
AND timestamp < CAST('2019-12-31 23:59:59.9' AS TIMESTAMP)
""")
timedf.show()
本文檔介紹了使用JupyterLab筆記型電腦訪問資料集的一般指南。 有關查詢資料集的更深入示例,請訪問JupyterLab筆記本 中的查詢服務 。 有關如何探索和視覺化資料集的更多資訊,請造訪使用筆記型電腦分 析資料的檔案。
此表概述了可用於的可選SQL標誌 Query Service。
旗標 | 說明 |
---|---|
-h , --help |
顯示幫助消息並退出。 |
-n , --notify |
切換選項以通知查詢結果。 |
-a , --async |
使用此標誌可非同步執行查詢,並可在查詢執行時釋放內核。 在將查詢結果指派給變數時請務必小心,因為如果查詢未完成,變數可能未定義。 |
-d , --display |
使用此標幟可防止顯示結果。 |