Git Product home page Git Product logo

Comments (9)

laughingman7743 avatar laughingman7743 commented on May 24, 2024 1

Yes!

from pyathena.

otmezger avatar otmezger commented on May 24, 2024

see https://docs.aws.amazon.com/athena/latest/APIReference/API_ResultConfiguration.html#athena-Type-ResultConfiguration-OutputLocation

and https://github.com/laughingman7743/PyAthenaJDBC/blob/master/pyathenajdbc/connection.py#L127

from pyathena.

jkleint avatar jkleint commented on May 24, 2024

Use the s3_staging_dir option to connect().
https://pypi.org/project/PyAthena/

from pyathena.

otmezger avatar otmezger commented on May 24, 2024

Hi @jkleint, sorry for not being more explicit. the s3_staging_dir option, as far as I know, is for the source of the data to run the query against as configured in the athena/glue table.

What I'm looking for is the location of the output files that athena generates (csv, txt, meta). I want to store them in a bucket other than the data itself.

from pyathena.

otmezger avatar otmezger commented on May 24, 2024

@hero0926 here is the documentation from botocore and athena. it seems to have a Resultconfiguration

'ResultConfiguration': {
            'OutputLocation': 'string',
            'EncryptionConfiguration': {
                'EncryptionOption': 'SSE_S3'|'SSE_KMS'|'CSE_KMS',
                'KmsKey': 'string'
            }
        },

It is being used here: https://github.com/laughingman7743/PyAthena/blob/master/pyathena/connection.py#L66

and boto3 has something similar in start_query_execution:
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/athena.html#Athena.Client.start_query_execution

from pyathena.

laughingman7743 avatar laughingman7743 commented on May 24, 2024

https://github.com/laughingman7743/PyAthena/blob/master/pyathena/common.py#L125
This is because the option name in the early release JDBC driver was s3_staging_dir.

from pyathena.

otmezger avatar otmezger commented on May 24, 2024

Thanks @laughingman7743, I get it. So s3_staging_dir in connect does NOT mean the root of the data, but rather the output folder for the result files, which will be used in execute as OutputLocation

is this correct?

from pyathena.

laughingman7743 avatar laughingman7743 commented on May 24, 2024

You can also change it when you run the query.
https://github.com/laughingman7743/PyAthena/blob/master/pyathena/cursor.py#L43

from pyathena.

rinatio avatar rinatio commented on May 24, 2024

@laughingman7743 would AWS_ATHENA_S3_STAGING_DIR environment also do it?

from pyathena.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.