क्या ग्रीनप्लम डेटाबेस के अंदर पांडा का उपयोग करना संभव है, और यदि ऐसा है तो कैसे? मैं ग्रीनप्लम के अंदर हूं। मैं इसके साथ एक समारोह बना रहा हूँ:

CREATE OR REPLACE FUNCTION myfunction() RETURNS
text AS $$ 
...
python code
...
rv = plpy.execute("SELECT * FROM mytable")
...

$$ LANGUAGE plpythonu;
SELECT public.myfunction()

कमांड rv = plpy.execute("SELECT * FROM mytable") PlyResult प्रकार का ऑब्जेक्ट जेनरेट करता है। इस बिंदु पर, मैं उदाहरण के लिए, अजगर पांडा के साथ आरवी में डेटा का विश्लेषण करना चाहता हूं। मैं आरवी को डेटाफ्रेम में कैसे परिवर्तित कर सकता हूं? आपको धन्यवाद!

1
user9675638 12 जुलाई 2018, 15:13

2 जवाब

शायद आप pd.DataFrame(rv[0:]) कोशिश कर सकते हैं। नीचे पोस्टग्रेज में एक परीक्षण है

postgres=# do $$
postgres$# import numpy as np
postgres$# import pandas as pd
postgres$# 
postgres$# iris = plpy.execute("SELECT * FROM iris LIMIT 3")
postgres$# plpy.notice(type(iris[0:]))
postgres$# iris = pd.DataFrame(iris[0:])
postgres$# 
postgres$# X = iris[['sepal_length', 'sepal_width', 'petal_length', 'petal_width']].values
postgres$# plpy.notice(type(X))
postgres$# plpy.notice(X)
postgres$# 
postgres$# $$ language plpython3u;
NOTICE:  <class 'list'>
NOTICE:  <class 'numpy.ndarray'>
NOTICE:  [[Decimal('5.10') Decimal('3.50') Decimal('1.40') Decimal('0.20')]
 [Decimal('4.90') Decimal('3.00') Decimal('1.40') Decimal('0.20')]
 [Decimal('4.70') Decimal('3.20') Decimal('1.30') Decimal('0.20')]]
DO
postgres=# 
1
C.C. Hsu 18 अगस्त 2018, 08:27

यहाँ मेरे उदाहरणों में से एक है:

drop function if exists describe_yelp();
create or replace function describe_yelp(
OUT stats text,
OUT stars numeric,
OUT cool numeric,
OUT useful numeric,
OUT funny numeric,
OUT txt_length numeric)
returns setof record
as $$
import pandas as pd
import numpy as np
import nltk
from nltk.corpus import stopwords
yelp=pd.DataFrame.from_records(plpy.execute('select * from yelp'))[['stars','cool','useful','funny','text']]
yelp['txt_length'] = yelp['text'].apply(len)
return yelp.describe().to_records()      
$$
language plpythonu;

मेरे ब्लॉग में ग्रीनप्लम - पंडों - नम्पी - आदि एकीकरण के और भी उदाहरण हैं: https://dwhsys.com/2018/05/06 /डेटा-खनन-में-एमपीपी-डेटाबेस/

3
Dmitriy Pavlov 13 पद 2018, 13:41