每个受支持的内核都提供了内置功能,允许您从笔记本内的数据集读取Platform数据。 目前,Adobe Experience Platform Data Science Workspace中的JupyterLab支持 Python、 R 、 PySpark和Scala。 但是,对分页数据的支持仅限于 Python 和R笔记本。 本指南重点介绍如何使用JupyterLab笔记本访问您的数据。
在阅读本指南之前,请查阅 JupyterLab 用户指南 ,了解关于 JupyterLab 以及它在数据科学工作区中的角色。
对于PySpark和Scala笔记本,如果您收到错误的原因是“远程RPC客户端已取消关联”。 这通常意味着驱动程序或执行器的内存不足。 尝试切换到 “批处理”模式 以解决此错误。
以下信息定义了可读取的最大数据量、使用的数据类型以及读取数据所用的估计时间范围。
对象 Python 和R,使用配置为40GB RAM的笔记本电脑服务器进行基准测试。 对于PySpark和Scala,在64GB RAM、8核、2个DBU(最多4个工作程序)配置的数据块群集用于下面列出的基准。
使用的ExperienceEvent架构数据大小不一,从1,000行(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万行非XDM (ad-hoc)数据(磁盘上大约5.6 GB的数据)。 添加其他行可能会导致错误。
行数 | 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数据。 交互模式最多仅支持500万行。 如果要读取更大的数据集,建议切换到批处理模式。 在批处理模式下,您应该能够在大约14小时内读取最多5亿行(磁盘上大约1.31TB的数据)的XDM数据。
行数 | 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分钟内最多读取非XDM数据的500万行(磁盘上大约5.36GB的数据)。 在批处理模式下,您应该能够在大约18分钟内读取最多10亿行(磁盘上大约1.05TB的数据)的非XDM数据。
行数 | 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数据。 交互模式最多仅支持500万行。 如果要读取更大的数据集,建议切换到批处理模式。 在批处理模式下,您应该能够在大约14小时内读取最多5亿行(磁盘上大约1.31TB的数据)的XDM数据。
行数 | 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万行非XDM数据(磁盘上大约5.36GB的数据)。 在批处理模式下,您应该能够在大约16分钟内读取最多10亿行(磁盘上大约1.05TB的数据)的非XDM数据。
行数 | 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 启动器 部分。
以下Python文档概述了以下概念:
无分页:
执行以下代码将读取整个数据集。 如果执行成功,则数据将另存为变量引用的Pandas数据流 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()
的量度。 限制数据是指要读取的数据点的最大数量,而偏移是指在读取数据之前要跳过的数据点数量。 如果读取操作执行成功,则数据将另存为变量引用的Pandas数据流 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_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 日期 Platform 允许您在中使用SQL Python 笔记本访问数据 Adobe Experience Platform查询服务. 通过访问数据 Query Service 由于其卓越的运行时间,可用于处理大型数据集。 请注意,使用查询数据 Query Service 具有十分钟的处理时间限制。
使用前 Query Service 在 JupyterLab,确保您实际了解 Query Service SQL语法.
使用查询数据 Query Service 需要您提供目标数据集的名称。 您可以使用查找所需的数据集来生成必要的代码单元格。 数据资源管理器. 右键单击数据集列表并单击 在笔记本中查询数据 在笔记本中生成两个代码单元格。 下面将更详细地概述这两个单元格。
为了利用 Query Service 在 JupyterLab,您必须首先创建工作流程之间的连接 Python 笔记本和 Query Service. 这可以通过执行第一个生成的单元来实现。
qs_connect()
在第二个生成的单元格中,必须在SQL查询之前定义第一行。 默认情况下,生成的单元格定义一个可选变量(df0
)将查询结果保存为Pandas数据流。
此 -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})*/
通过使用字符串格式语法并将变量换成大括号({}
),如以下示例所示:
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 数据集在 Python 笔记本,您必须提供数据集的ID ({DATASET_ID}
)以及使用逻辑运算符定义特定时间范围的过滤器规则。 定义时间范围后,将忽略任何指定的分页,并会考虑整个数据集。
筛选运算符列表如下所述:
eq()
: 等于gt()
: 大于ge()
: 大于或等于lt()
: 小于le()
: 小于或等于And()
:逻辑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 启动器 部分。
下面的R文档概述了以下概念:
无分页:
执行以下代码将读取整个数据集。 如果执行成功,则数据将另存为变量引用的Pandas数据流 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()
的量度。 限制数据是指要读取的数据点的最大数量,而偏移是指在读取数据之前要跳过的数据点数量。 如果读取操作执行成功,则数据将另存为变量引用的Pandas数据流 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的左侧导航中选择“数据”图标选项卡(突出显示如下)。 此 数据集 和 架构 目录出现。 选择 数据集 并右键单击,然后选择 在笔记本中写入数据 选项。 笔记本底部会显示一个可执行代码条目。
或者,您可以复制并粘贴以下代码单元格:
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')
要访问和筛选 ExperienceEvent 数据集时,您必须提供数据集的ID ({DATASET_ID}
)以及使用逻辑运算符定义特定时间范围的过滤器规则。 定义时间范围后,将忽略任何指定的分页,并会考虑整个数据集。
筛选运算符列表如下所述:
eq()
: 等于gt()
: 大于ge()
: 大于或等于lt()
: 小于le()
: 小于或等于And()
:逻辑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 notebooks要求您使用以下样板代码初始化会话。
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
随着 Spark 2.4, %dataset
提供了自定义魔术以用于PySpark 3 (Spark 2.4)笔记本。 有关IPython内核中可用的幻数命令的更多详细信息,请访问 IPython魔法文档.
用法
%dataset {action} --datasetId {id} --dataFrame {df} --mode batch
描述
自定义 Data Science Workspace 用于从读取或写入数据集的magic命令 PySpark 笔记本(Python 3个内核)。
名称 | 描述 | 必需 |
---|---|---|
{action} |
要对数据集执行的操作的类型。 有两个操作可用“读取”或“写入”。 | 是 |
--datasetId {id} |
用于提供要读取或写入的数据集的ID。 | 是 |
--dataFrame {df} |
大熊猫数据流。
|
是 |
--mode |
更改数据读取方式的其他参数。 允许的参数为“batch”和“interactive”。 默认情况下,该模式设置为“批处理”。 建议您“交互式”模式以提高在较小数据集上的查询性能。 |
是 |
在中查看PySpark表 笔记本数据限制 部分,以确定是否 mode
应设置为 interactive
或 batch
.
示例
%dataset read --datasetId 5e68141134492718af974841 --dataFrame pd0 --mode batch
%dataset write --datasetId 5e68141134492718af974842 --dataFrame pd0 --mode batch
缓存数据,使用 df.cache()
在写入数据之前,可以大大提高笔记本电脑的性能。 如果您收到以下任何错误,这将很有帮助:
请参阅 疑难解答指南 了解更多信息。
您可以使用以下方法在JupyterLab buy中自动生成上述示例:
在JupyterLab的左侧导航中,选择数据图标选项卡(突出显示如下)。 此 数据集 和 架构 目录出现。 选择 数据集 并右键单击,然后选择 在笔记本中写入数据 选项。 笔记本底部会显示一个可执行代码条目。
要使用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布尔值、双精度分数或长种子。
访问和筛选 ExperienceEvent PySpark笔记本中的数据集要求您提供数据集标识({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 --mode batch
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
要获取并返回Platform值,无需定义变量,例如 var userToken
. 在下面的Scala示例中, clientContext
用于获取和返回读取数据集所需的所有值。
缓存数据,使用 df.cache()
在写入数据之前,可以大大提高笔记本电脑的性能。 如果您收到以下任何错误,这将很有帮助:
请参阅 疑难解答指南 了解更多信息。
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", "batch")
.option("dataset-id", "5e68141134492718af974844")
.load()
df1.printSchema()
df1.show(10)
元素 | 描述 |
---|---|
df1 | 一个变量,表示用于读取和写入数据的Pandas数据流。 |
user-token | 您的用户令牌,将使用自动获取 clientContext.getUserToken() . |
service-token | 使用以下方式自动获取的服务令牌 clientContext.getServiceToken() . |
ims-org | 您的组织ID,将使用自动获取 clientContext.getOrgId() . |
api-key | 使用以下方式自动获取的API密钥 clientContext.getApiKey() . |
查看Scala表中的 笔记本数据限制 部分,以确定是否 mode
应设置为 interactive
或 batch
.
您可以使用以下方法在JupyterLab buy中自动生成上述示例:
在JupyterLab的左侧导航中,选择数据图标选项卡(突出显示如下)。 此 数据集 和 架构 目录出现。 选择 数据集 并右键单击,然后选择 浏览笔记本中的数据 选项。 笔记本底部会显示一个可执行代码条目。
和
在Scala中,您可以导入 clientContext
要获取并返回Platform值,无需定义变量,例如 var userToken
. 在下面的Scala示例中, clientContext
用于定义并返回写入数据集所需的所有值。
缓存数据,使用 df.cache()
在写入数据之前,可以大大提高笔记本电脑的性能。 如果您收到以下任何错误,这将很有帮助:
请参阅 疑难解答指南 了解更多信息。
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", "batch")
.option("dataset-id", "5e68141134492718af974844")
.save()
element | 描述 |
---|---|
df1 | 一个变量,表示用于读取和写入数据的Pandas数据流。 |
user-token | 您的用户令牌,将使用自动获取 clientContext.getUserToken() . |
service-token | 使用以下方式自动获取的服务令牌 clientContext.getServiceToken() . |
ims-org | 您的组织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 Notebooks访问数据集的一般准则。 有关查询数据集的更深入示例,请访问 JupyterLab笔记本中的查询服务 文档。 有关如何浏览和可视化数据集的更多信息,请访问 使用笔记本分析数据.
此表概述了可用于的可选SQL标记 Query Service.
标志 | 描述 |
---|---|
-h 、--help |
显示帮助消息并退出。 |
-n 、--notify |
用于通知查询结果的切换选项。 |
-a 、--async |
使用此标记可异步执行查询,并可在查询执行时释放内核。 将查询结果分配给变量时请务必谨慎,因为如果查询不完整,变量可能会未定义。 |
-d 、--display |
使用此标记可阻止显示结果。 |