Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Databricks/Spark中记录附加的群集信息_Python_Scala_Apache Spark_Databricks - Fatal编程技术网

Python 在Databricks/Spark中记录附加的群集信息

Python 在Databricks/Spark中记录附加的群集信息,python,scala,apache-spark,databricks,Python,Scala,Apache Spark,Databricks,我想在Databrick上做一些性能测试。为此,我想记录在测试期间使用的集群(VM类型,例如Standard_DS3_v2)(我们可以假设驱动程序和工作节点相同)。我知道我可以记录工人数量、内核数量(至少在驱动程序上)和内存数量(至少在驱动程序上)。但是,我想知道VM类型,因为我希望能够确定我使用的是存储优化群集还是通用群集。代替VM类型,此信息也可以。最理想的情况是,我可以将这些信息作为笔记本中变量的字符串,以便以后将其与我正在记录的其他信息一起写入日志文件。但是,如果没有直接的解决方案,我也

我想在Databrick上做一些性能测试。为此,我想记录在测试期间使用的集群(VM类型,例如Standard_DS3_v2)(我们可以假设驱动程序和工作节点相同)。我知道我可以记录工人数量、内核数量(至少在驱动程序上)和内存数量(至少在驱动程序上)。但是,我想知道VM类型,因为我希望能够确定我使用的是存储优化群集还是通用群集。代替VM类型,此信息也可以。最理想的情况是,我可以将这些信息作为笔记本中变量的字符串,以便以后将其与我正在记录的其他信息一起写入日志文件。但是,如果没有直接的解决方案,我也很乐意使用任何黑客解决方法。

您可以通过从REST API获得此信息。您可以使用笔记本上下文通过
dbutils.notebook.getContext
调用来标识笔记本运行的集群,该调用返回不同属性的映射,包括集群ID、工作区域名,并且您可以从中提取身份验证令牌。下面是打印驱动程序和工作节点类型的代码(在Python中,但Scala代码应该很熟悉-我经常使用Scala的
dbutils.notebook.getContext.tags
查找可用的标记):


伟大的此解决方案还允许从一个
响应
对象获取与日志记录相关的其他信息,例如工作人员数量、群集核心数量、内存。。。
import requests
ctx = dbutils.notebook.entry_point.getDbutils().notebook().getContext()
host_name = ctx.tags().get("browserHostName").get()
host_token = ctx.apiToken().get()
cluster_id = ctx.tags().get("clusterId").get()

response = requests.get(
    f'https://{host_name}/api/2.0/clusters/get?cluster_id={cluster_id}',
    headers={'Authorization': f'Bearer {host_token}'}
  ).json()
print(f"driver type={response['driver_node_type_id']} worker type={response['node_type_id']}")