【问题标题】:Load a random sample of csv file s3 pyspark加载 csv 文件 s3 pyspark 的随机样本
【发布时间】:2018-08-08 09:48:27
【问题描述】:

我正在尝试在 s3 中加载总共 100mill 行数据的随机样本。 有没有一种简单的方法可以将 s3 中的随机样本直接加载到 pyspark 数据帧中?

在熊猫中这会是这样的 df = pandas.read_csv(filename, skiprows=skiplines)

pyspark 中是否有我可以使用的等价物?

【问题讨论】:

标签: amazon-web-services csv amazon-s3 pyspark


【解决方案1】:

我相信默认情况下 spark 的 DataFrameReader.csvlazy [需要引用]

所以,您应该能够读取 csv 并使用 pyspark.sql.DataFrame.sample

frac = 0.01 # get approximately 1%
df = spark.read.csv(filename)
sample = df.sample(withReplacement=False, fraction=frac)

但在您应用转换之前,实际上什么都不会执行。

【讨论】:

  • 所以为了正确理解你:s3中的完整数据集在采样之前没有加载到内存中?它只将随机选择的(在这种情况下为 1%)加载到内存中?
  • TBH,我不能肯定地说,但我相信就是这样。你有限制吗?您可以测试它是否适用于您的情况?
猜你喜欢
  • 2016-09-15
  • 2017-07-18
  • 2016-06-07
  • 2014-04-11
  • 1970-01-01
  • 2019-10-20
  • 2018-06-14
  • 1970-01-01
  • 2021-01-05
相关资源
最近更新 更多