1

我正在尝试使用没有标题且具有::字段分隔符的数据集:

! wget --quiet http://files.grouplens.org/datasets/movielens/ml-1m.zip
! unzip ml-1m.zip
! mv ml-1m/ratings.dat .
! head ratings.dat

输出:

1::1193::5::978300760
1::661::3::978302109
1::914::3::978301968

我已将文件加载到我的 dsx 管道中,但我不清楚如何让 dsx 使用::分隔符拆分此文件。

  • 我该怎么做呢?

  • 如果无法让 dsx 使用 dsx ml 管道功能重塑此文件,那么 dsx 在输入文件格式方面是否有任何先决条件?

更新:

我正在尝试使用的 ml 管道功能可以从下面的屏幕截图中看到:

在此处输入图像描述

我添加了一个数据集,但无法弄清楚如何让 dsx 识别字段分隔符:

在此处输入图像描述

4

1 回答 1

2

截至 2017 年 2 月...

当您创建新管道并选择数据集时,我相信 DSX 会使用 Spark DataFrameReader加载您选择的文件。DataFrameReader 默认使用单个,作为分隔符。DSX 不提供更改 UI 中默认分隔符的方法。

我认为预处理数据是你最好的选择。您可以在笔记本中执行此操作。请注意,Spark DataFrameReader 仅支持单个字符分隔符,因此您不能将其用于此特定数据集。但是,您可以使用 pandas。

import pandas as pd

pdf = pd.read_csv('ml-1m/ratings.dat', sep='::', 
              header=None, 
              names=['UserID','MovieID','Rating','Timestamp'], 
              engine='python')

pdf.to_csv('ratings.csv', index=False)

!head ratings.csv
UserID,MovieID,Rating,Timestamp
1,1193,5,978300760
1,661,3,978302109
1,914,3,978301968
1,3408,4,978300275
1,2355,5,978824291
1,1197,3,978302268
1,1287,5,978302039
1,2804,5,978300719
1,594,4,978302268

现在数据将采用 DSX 能够正确解析的格式。

于 2017-02-21T14:55:47.377 回答