数据科学技术的新手。目前正致力于阅读SAS文件(.sas7dbat)。
能够使用以下方式阅读文件:
SAS7BDAT('/dbfs/mnt/myMntScrum1/sasFile.sas7bdat') as f:
for row in f:
print(row)
行打印所有数据。
当我们在SAS查看器中查看SAS文件时,我们可以看到元数据E.g.标签信息&实际数据上使用的变量(列名)
如何使用Python在Spark(Databricks)中读取此元数据?
答案 0 :(得分:2)
您尝试过pyreadstat吗?
它可以直接读取元数据。
import pyreadstat
df, meta = pyreadstat.read_sas7bdat('/path/to/a/file.sas7bdat')
答案 1 :(得分:1)
Python中的大多数数据分析是使用pandas库完成的,该库有一个名为' read_sas'保留元数据,除非你被命令使用spark我强烈推荐pandas。以下是SAS用户的一组说明:https://blog.dominodatalab.com/pandas-for-sas-users-part-1/
答案 2 :(得分:0)
您可以使用名为h5
的Spark外部程序包来读取spark-sas7bdat
这里是如何将其安装到Spark Application中 https://spark-packages.org/package/saurfang/spark-sas7bdat 及其github页面上的一些示例 https://github.com/saurfang/spark-sas7bdat
然后仅使用Spark读取方法
sas_file_name.sas7bdat
答案 3 :(得分:0)
如果您只对 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
等。