读取 SAS 文件以获取元信息
Read SAS file to get meta information
对数据科学技术非常陌生。目前正在阅读 SAS 文件 (.sas7dbat)。
能够使用以下方式读取文件:
SAS7BDAT('/dbfs/mnt/myMntScrum1/sasFile.sas7bdat') as f:
for row in f:
print(row)
行打印所有数据。
当我们在 SAS 查看器中查看 SAS 文件时,我们可以看到元数据,例如实际数据上使用的标签信息和变量(列名)
如何使用 Python 在 Spark (Databricks) 中读取此元数据?
Python 中的大多数数据分析是使用 pandas 库完成的,该库有一个名为 'read_sas' 的方法,它保留元数据,除非您被命令使用 spark I 强烈推荐pandas。这是一组针对 SAS 用户的说明:https://blog.dominodatalab.com/pandas-for-sas-users-part-1/
你试过了吗pyreadstat?
可以直接读取元数据。
import pyreadstat
df, meta = pyreadstat.read_sas7bdat('/path/to/a/file.sas7bdat')
您可以使用名为 spark-sas7bdat
的 Spark 外部包来读取 sas_file_name.sas7bdat
以下是如何将其安装到 Spark 应用程序中
https://spark-packages.org/package/saurfang/spark-sas7bdat
以及其 github 页面上的一些示例
https://github.com/saurfang/spark-sas7bdat
然后就用Spark读取方法
spark.read.format("com.github.saurfang.sas.spark")
.load("path to the sas_file_name.sas7bdat", inferLong=True)
如果您只对 metadata
感兴趣,您可以使用 pyreadstat
传递 metadataonly
参数作为 True
,它不会读取任何数据,而只会读取元数据, 因此文件的大小不会影响读取元数据所需的时间。
import pyreadstat
df, meta = pyreadstat.read_sas7bdat('/dbfs/mnt/myMntScrum1/sasFile.sas7bdat', metadataonly=True)
请注意,当传递 metadataonly=True
时,df 将是一个空数据框,如果您同时需要数据和元数据,则可能需要省略此数据
您可以使用 meta.column_names_to_labels
访问变量标签,它会给出一个字典,其中变量名称是键,变量标签是值。
其他有用的元数据有:metadata.number_columns
、metadata.number_rows
、metadata.file_encoding
、metadata.file_label
等
找到可用元数据的完整列表
对数据科学技术非常陌生。目前正在阅读 SAS 文件 (.sas7dbat)。
能够使用以下方式读取文件:
SAS7BDAT('/dbfs/mnt/myMntScrum1/sasFile.sas7bdat') as f:
for row in f:
print(row)
行打印所有数据。
当我们在 SAS 查看器中查看 SAS 文件时,我们可以看到元数据,例如实际数据上使用的标签信息和变量(列名)
如何使用 Python 在 Spark (Databricks) 中读取此元数据?
Python 中的大多数数据分析是使用 pandas 库完成的,该库有一个名为 'read_sas' 的方法,它保留元数据,除非您被命令使用 spark I 强烈推荐pandas。这是一组针对 SAS 用户的说明:https://blog.dominodatalab.com/pandas-for-sas-users-part-1/
你试过了吗pyreadstat?
可以直接读取元数据。
import pyreadstat
df, meta = pyreadstat.read_sas7bdat('/path/to/a/file.sas7bdat')
您可以使用名为 spark-sas7bdat
的 Spark 外部包来读取 sas_file_name.sas7bdat
以下是如何将其安装到 Spark 应用程序中 https://spark-packages.org/package/saurfang/spark-sas7bdat 以及其 github 页面上的一些示例 https://github.com/saurfang/spark-sas7bdat
然后就用Spark读取方法
spark.read.format("com.github.saurfang.sas.spark")
.load("path to the sas_file_name.sas7bdat", inferLong=True)
如果您只对 metadata
感兴趣,您可以使用 pyreadstat
传递 metadataonly
参数作为 True
,它不会读取任何数据,而只会读取元数据, 因此文件的大小不会影响读取元数据所需的时间。
import pyreadstat
df, meta = pyreadstat.read_sas7bdat('/dbfs/mnt/myMntScrum1/sasFile.sas7bdat', metadataonly=True)
请注意,当传递 metadataonly=True
时,df 将是一个空数据框,如果您同时需要数据和元数据,则可能需要省略此数据
您可以使用 meta.column_names_to_labels
访问变量标签,它会给出一个字典,其中变量名称是键,变量标签是值。
其他有用的元数据有:metadata.number_columns
、metadata.number_rows
、metadata.file_encoding
、metadata.file_label
等