小编Dil*_*ody的帖子

在 AWS Sagemaker 中使用 python pandas 从 S3 存储桶中读取大型 csv

我正在尝试从 S3 存储桶将大型 CSV(~5GB)加载到 Pandas 中。

以下是我为 1.4 kb 的小型 CSV 尝试的代码:

client = boto3.client('s3') 
obj = client.get_object(Bucket='grocery', Key='stores.csv')
body = obj['Body']
csv_string = body.read().decode('utf-8')
df = pd.read_csv(StringIO(csv_string))
Run Code Online (Sandbox Code Playgroud)

这适用于小型 CSV,但我无法通过此实现将 5GB csv 加载到 Pandas 数据帧的要求(可能是由于 StringIO 加载 csv 时的内存限制)。

我也试过下面的代码

s3 = boto3.client('s3')
obj = s3.get_object(Bucket='bucket', Key='key')
df = pd.read_csv(obj['Body'])
Run Code Online (Sandbox Code Playgroud)

但这给出了以下错误。

ValueError: Invalid file path or buffer object type: <class 'botocore.response.StreamingBody'>
Run Code Online (Sandbox Code Playgroud)

非常感谢解决此错误的任何帮助。

python csv amazon-s3 amazon-sagemaker

7
推荐指数
1
解决办法
1万
查看次数

在 Solr 中实例化自定义 FilterFactory 类时出错

我在 Solr 中实现了一个示例自定义过滤器,并配置了 fieldtype:contentType 以在索引分析阶段使用过滤器,如下所示;

<fieldType name="contentType" class="solr.TextField">
    <analyzer type="index">
      <tokenizer class="solr.KeywordTokenizerFactory"/>
      <filter class="com.solr.test.analyzer.ContentFilterFactory"/>
    </analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)

下面是我的自定义过滤器工厂类:

public class ContentFilterFactory extends TokenFilterFactory {

    public ContentFilterFactory() {
        super();
    }

    @Override
    public TokenStream create(TokenStream input) {
        return new ContentFilter(input);
    }

}
Run Code Online (Sandbox Code Playgroud)

启动 Solr 4.5.0 服务器时,加载 ContentFilterFactory 实例时出现以下错误。根本原因是 java.lang.NoSuchMethodException: com.solr.test.analyzer.ContentFilterFactory.(java.util.Map)

我需要在 FilterFactory 中包含一个 init() 方法吗?如果是这样,我应该在其中包含什么?有人可以帮我解决这个错误。

   Caused by: org.apache.solr.common.SolrException: Plugin init failure for [schema.xml] analyzer/filter: Error instantiating class: 'com.solr.test.analyzer.ContentFilterFactory'
    at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:177)
    at org.apache.solr.schema.FieldTypePluginLoader.readAnalyzer(FieldTypePluginLoader.java:400)
    at org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:95)
    at org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:43)
    at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:151)
    ... 14 more
Caused by: …
Run Code Online (Sandbox Code Playgroud)

java solr

2
推荐指数
1
解决办法
1662
查看次数

标签 统计

amazon-s3 ×1

amazon-sagemaker ×1

csv ×1

java ×1

python ×1

solr ×1