探索数据管道的源数据
创建数据管道的常见第一步是了解管道的源数据。 在此步骤中,你将在笔记本中运行 Databricks 实用工具和 PySpark 命令来检查源数据和项目。
若要详细了解探索性数据分析,请参阅 Azure Databricks 上的探索数据分析:工具和技术。
创建数据探索笔记本
在边栏中,单击 “新建”,然后从菜单中选择“笔记本”。 此时会打开笔记本,其中包含可替换的默认名称。
输入笔记本的名称,例如
Explore songs data
。 默认情况下:- “Python”是选择的语言。
- 笔记本将附加到你使用的最后一个群集。 在本例中,是你在步骤 1:创建群集中创建的群集。
若要查看包含数据集的目录的内容,请在笔记本的第一个单元格中输入以下内容,单击 ,然后选择“运行单元格”。
%fs ls "/databricks-datasets/songs"
路径 name 大小 modificationTime 1 dbfs:/databricks-datasets/songs/README.md README.md 1719 1454620183000 2 dbfs:/databricks-datasets/songs/data-001/ data-001/ 0 1672791237846 3 dbfs:/databricks-datasets/songs/data-002/ data-002/ 0 1672791237846
浏览数据
自述文件包含有关数据集的信息,包括数据架构的说明。 引入数据时,架构信息将用于下一步。 若要查看自述文件的内容,请在单元格操作菜单中单击 ,选择“在下方添加单元格”,在新单元格中输入以下内容,单击 ,然后选择“运行单元格”。
%fs head --maxBytes=10000 "/databricks-datasets/songs/README.md"
Sample of Million Song Dataset =============================== ## Source This data is a small subset of the [Million Song Dataset](http://labrosa.ee.columbia.edu/millionsong/). The original data was contributed by The Echo Nest. Prepared by T. Bertin-Mahieux <tb2332 '@' columbia.edu> ## Attribute Information - artist_id:string - artist_latitude:double - artist_longitude:double - artist_location:string - artist_name:string - duration:double - end_of_fade_in:double - key:int - key_confidence:double - loudness:double - release:string - song_hotnes:double - song_id:string - start_of_fade_out:double - tempo:double - time_signature:double - time_signature_confidence:double - title:string - year:double - partial_sequence:int ...
此示例中使用的记录位于
/databricks-datasets/songs/data-001/
目录中。 若要查看此目录的内容,请在单元格操作菜单中单击 ,选择“在下方添加单元格”,在新单元格中输入以下内容,单击 ,然后选择“运行单元格”。%fs ls "/databricks-datasets/songs/data-001"
路径 name 大小 modificationTime 1 dbfs:/databricks-datasets/songs/data-001/header.txt header.txt 377 1454633901000 2 dbfs:/databricks-datasets/songs/data-001/part-00000 part-00000 52837 1454547464000 3 dbfs:/databricks-datasets/songs/data-001/part-00001 part-00001 52469 1454547465000 由于自述文件和文件名不指示文件格式,因此可查看记录示例,来更好地了解每条记录的内容和格式。 若要读取和显示其中一个数据文件中的前 10 条记录,请在单元格操作菜单中单击 ,选择“在下方添加单元格”,在新单元格中输入以下内容,单击 ,然后选择“运行单元格”
%fs head --maxBytes=10000 "/databricks-datasets/songs/data-001/part-00000"
AR81V6H1187FB48872 nan nan Earl Sixteen 213.7073 0.0 11 0.419 -12.106 Soldier of Jah Army nan SOVNZSZ12AB018A9B8 208.289 125.882 1 0.0 Rastaman 2003 -- ARVVZQP11E2835DBCB nan nan Wavves 133.25016 0.0 0 0.282 0.596 Wavvves 0.471578247701 SOJTQHQ12A8C143C5F 128.116 89.519 1 0.0 I Want To See You (And Go To The Movies) 2009 -- ARFG9M11187FB3BBCB nan nan Nashua USA C-Side 247.32689 0.0 9 0.612 -4.896 Santa Festival Compilation 2008 vol.1 nan SOAJSQL12AB0180501 242.196 171.278 5 1.0 Loose on the Dancefloor 0 225261 ...
通过查看记录示例,可以观察有关数据的一些情况。 稍后在处理数据时这些观察结果将派上用场:
- 记录不包含标头。 标头存储在同一目录中的单独文件中。
- 文件采用制表符分隔值 (TSV) 格式显示。
- 某些字段缺失或无效。
- 记录不包含标头。 标头存储在同一目录中的单独文件中。
若要进一步探索和分析数据,请使用这些观察结果将 TSV 格式的歌曲数据加载到 PySpark DataFrame 中。 为此,请在单元格操作菜单中单击 ,选择“在下方添加单元格”,在新单元格中输入以下代码,然后单击 >“运行菜单”。
df = spark.read.format('csv').option("sep", "\t").load('dbfs:/databricks-datasets/songs/data-001/part-00000') df.display()
由于数据文件缺少标头,因此列名显示为
_c0
、_c1
等。 无论实际数据类型如何,每个列都解释为string
。 下一步中的原始数据引入显示了一个示例,该示例演示如何在加载数据时强制实施有效架构。