SAS 转表 (转换)

摘要

SAS 数据集转换为表。

使用情况

  • 此工具支持与本地计算机上安装的 SAS 桌面版的连接或与 SAS Cloud Analytic Services (CAS) 的连接。 如果您正在使用 CAS,则记录的顺序可能会在转换过程中发生变化。

  • 必须使用自定义会话配置文件参数进行 SAS 的远程部署,例如 Workspace Server、UNIX 和 Mainframe。 如果 SASArcGIS AllSource 安装在同一台计算机上,则不需要配置文件。

    了解有关 SAS 会话配置的详细信息

  • 以表单 libref.tablename 形式提供 SAS 数据集,其中 librefSASCAS 库的名称,tablenameSAS 数据集的名称。 例如,SASUSER.MYTABLE 引用了 SASUSER 库中名为 MYTABLESAS 数据集。

  • SAS 库、数据集名称和列名称不区分大小写。 例如,SASUSER.MYTABLE 的处理方式与 sasuser.mytableSASUser.MyTable 相同。

  • 可以转换的记录数取决于计算机的可用内存。

  • 在输出表中将不会保留SAS 数据集的列格式。

  • 对于本地 SAS 部署,默认情况下可以使用 SASUSERSASHELPMAPSMAPSSASMAPSGFK 库。 要使用自定义库,必须在 SAS Autoexec 文件中定义 libref。

    了解有关 Autoexec 配置的详细信息

  • 连接到 CAS 时,可以通过两种方式验证凭据:

    • 使用 CAS 用户名密码参数提供用户名和密码。 密码将被隐藏,无法通过地理处理历史访问。
    • 使用包含用户名和编码密码的 CAS 授权 (Authinfo) 文件参数提供授权 (Authinfo) 文件。 选中此选项,可避免每次运行工具时重新键入密码。

      要在每次使用该工具时自动使用 Authinfo 文件,请将该文件命名为 _authinfo(包括下划线)并将其保存在 Windows 主目录中(通常为 C:\Users\<username>)。 该文件可以具有任何文件扩展名,例如 _authinfo.txt_authinfo.netrc。 如果文件存在于主目录中,则 CAS 授权 (Authinfo) 文件参数将自动使用此文件填充。 这样,可以无需每次使用该工具时都浏览至同一 Authinfo 文件。

      Authinfo 文件可以包含多个主机和端口的连接信息,对于单个用户连接到单个主机和端口这一最简单的情况,Authinfo 文件只有一行,语法如下:

      default user MYUSERNAME password {SAS004}1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ

      您可以使用 PROC PWENCODE SAS 过程对文件的密码进行编码。

      了解有关创建 Authinfo 文件和编码密码的详细信息

  • WORK 库是一个临时工作空间,其在 SAS 会话开始时创建,并在会话关闭时删除所有文件。 此工具将在执行期间启动和关闭新的 SAS 会话,因此不应在此工具中使用 WORK 库。

参数

标注说明数据类型
输入 SAS 数据集 (libref.tablename)

输入 SAS 数据集。 以表单 libref.tablename 形式提供数据集,其中 librefSAS 库的名称,tablenameSAS 数据集的名称。

String
输出表

输出表。

Table
从 SAS 云分析服务 (CAS) 下载 SAS 数据集
(可选)

指定从 CAS 下载输入 SAS 数据集,还是从本地 SAS 库访问此数据集。

  • 选中 - 将从 CAS 下载输入 SAS 数据集。
  • 未选中 - 将从本地 SAS 库访问输入 SAS 数据集。 这是默认设置。

Boolean
CAS 主机名 URL
(可选)

CAS 主机的 URL。

String
端口
(可选)

CAS 连接的端口。

Long
CAS 用户名
(可选)

CAS 连接的用户名。

String
密码
(可选)

CAS 连接的密码。 运行工具后,此密码被隐藏并且不可访问。

String Hidden
自定义会话配置文件
(可选)

文件指定 SAS 会话的自定义配置。 仅自定义本地或远程 SAS 部署需要该文件。

File
CAS 授权 (Authinfo) 文件
(可选)

该文件包含用于连接到 CAS 的身份验证信息。 该文件必须包含连接的用户名和编码密码。 如果提供了文件,则无需再指定 CAS 用户名密码参数。

File

arcpy.conversion.SASToTable(in_sas_dataset, out_table, {use_cas_connection}, {hostname}, {port}, {username}, {password}, {custom_cfg_file}, {authinfo_file})
名称说明数据类型
in_sas_dataset

输入 SAS 数据集。 以表单 libref.tablename 形式提供数据集,其中 librefSAS 库的名称,tablenameSAS 数据集的名称。

String
out_table

输出表。

Table
use_cas_connection
(可选)

指定从 CAS 下载输入 SAS 数据集,还是从本地 SAS 库访问此数据集。

  • USE_CAS将从 CAS 下载输入 SAS 数据集。
  • LOCAL_SAS将从本地 SAS 库访问输入 SAS 数据集。 这是默认设置。
Boolean
hostname
(可选)

CAS 主机的 URL。

String
port
(可选)

CAS 连接的端口。

Long
username
(可选)

CAS 连接的用户名。

String
password
(可选)

CAS 连接的密码。 运行工具后,此密码被隐藏并且不可访问。

String Hidden
custom_cfg_file
(可选)

文件指定 SAS 会话的自定义配置。 仅自定义本地或远程 SAS 部署需要该文件。

File
authinfo_file
(可选)

该文件包含用于连接到 CAS 的身份验证信息。 该文件必须包含连接的用户名和编码密码。 如果提供了文件,则无需再指定 usernamepassword 参数。

File

代码示例

SASToTable 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在本地 SAS 安装中使用 SASToTable 函数。


import arcpy
arcpy.conversion.SASToTable("sashelp.cars", "CarsTable", "LOCAL_SAS")
SASToTable 示例 2(独立脚本)

以下独立 Python 脚本演示了如何通过与 CAS 的连接使用 SASToTable 函数。


# Import system modules
import arcpy
import getpass

# Provide tool parameters
in_SASDS = "casuser.MySASData"
out_table = "MyEsriData"
connection = "USE_CAS"
hosturl = https://XXX.vdp.sas.com/XXX-XXXXX-default-http/ 
port = 100
username = "CAS_user"

# Provide password securely
password = getpass.getpass()

try:
    # Set the workspace and run the tool.
    arcpy.env.workspace = r"C:\\SASToTable\\MyData.gdb"
    arcpy.conversion.SASToTable(in_SASDS, out_table, connection, hosturl,
                     port, username, password)

except arcpy.ExecuteError:
    # If an error occurred when running the tool, print the error message.
    print(arcpy.GetMessages())

环境

此工具不使用任何地理处理环境。

相关主题