teradataml 20.0.0.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- teradataml/LICENSE-3RD-PARTY.pdf +0 -0
- teradataml/LICENSE.pdf +0 -0
- teradataml/README.md +2762 -0
- teradataml/__init__.py +78 -0
- teradataml/_version.py +11 -0
- teradataml/analytics/Transformations.py +2996 -0
- teradataml/analytics/__init__.py +82 -0
- teradataml/analytics/analytic_function_executor.py +2416 -0
- teradataml/analytics/analytic_query_generator.py +1050 -0
- teradataml/analytics/byom/H2OPredict.py +514 -0
- teradataml/analytics/byom/PMMLPredict.py +437 -0
- teradataml/analytics/byom/__init__.py +16 -0
- teradataml/analytics/json_parser/__init__.py +133 -0
- teradataml/analytics/json_parser/analytic_functions_argument.py +1805 -0
- teradataml/analytics/json_parser/json_store.py +191 -0
- teradataml/analytics/json_parser/metadata.py +1666 -0
- teradataml/analytics/json_parser/utils.py +805 -0
- teradataml/analytics/meta_class.py +236 -0
- teradataml/analytics/sqle/DecisionTreePredict.py +456 -0
- teradataml/analytics/sqle/NaiveBayesPredict.py +420 -0
- teradataml/analytics/sqle/__init__.py +128 -0
- teradataml/analytics/sqle/json/decisiontreepredict_sqle.json +78 -0
- teradataml/analytics/sqle/json/naivebayespredict_sqle.json +62 -0
- teradataml/analytics/table_operator/__init__.py +11 -0
- teradataml/analytics/uaf/__init__.py +82 -0
- teradataml/analytics/utils.py +828 -0
- teradataml/analytics/valib.py +1617 -0
- teradataml/automl/__init__.py +5835 -0
- teradataml/automl/autodataprep/__init__.py +493 -0
- teradataml/automl/custom_json_utils.py +1625 -0
- teradataml/automl/data_preparation.py +1384 -0
- teradataml/automl/data_transformation.py +1254 -0
- teradataml/automl/feature_engineering.py +2273 -0
- teradataml/automl/feature_exploration.py +1873 -0
- teradataml/automl/model_evaluation.py +488 -0
- teradataml/automl/model_training.py +1407 -0
- teradataml/catalog/__init__.py +2 -0
- teradataml/catalog/byom.py +1759 -0
- teradataml/catalog/function_argument_mapper.py +859 -0
- teradataml/catalog/model_cataloging_utils.py +491 -0
- teradataml/clients/__init__.py +0 -0
- teradataml/clients/auth_client.py +137 -0
- teradataml/clients/keycloak_client.py +165 -0
- teradataml/clients/pkce_client.py +481 -0
- teradataml/common/__init__.py +1 -0
- teradataml/common/aed_utils.py +2078 -0
- teradataml/common/bulk_exposed_utils.py +113 -0
- teradataml/common/constants.py +1669 -0
- teradataml/common/deprecations.py +166 -0
- teradataml/common/exceptions.py +147 -0
- teradataml/common/formula.py +743 -0
- teradataml/common/garbagecollector.py +666 -0
- teradataml/common/logger.py +1261 -0
- teradataml/common/messagecodes.py +518 -0
- teradataml/common/messages.py +262 -0
- teradataml/common/pylogger.py +67 -0
- teradataml/common/sqlbundle.py +764 -0
- teradataml/common/td_coltype_code_to_tdtype.py +48 -0
- teradataml/common/utils.py +3166 -0
- teradataml/common/warnings.py +36 -0
- teradataml/common/wrapper_utils.py +625 -0
- teradataml/config/__init__.py +0 -0
- teradataml/config/dummy_file1.cfg +5 -0
- teradataml/config/dummy_file2.cfg +3 -0
- teradataml/config/sqlengine_alias_definitions_v1.0 +14 -0
- teradataml/config/sqlengine_alias_definitions_v1.1 +20 -0
- teradataml/config/sqlengine_alias_definitions_v1.3 +19 -0
- teradataml/context/__init__.py +0 -0
- teradataml/context/aed_context.py +223 -0
- teradataml/context/context.py +1462 -0
- teradataml/data/A_loan.csv +19 -0
- teradataml/data/BINARY_REALS_LEFT.csv +11 -0
- teradataml/data/BINARY_REALS_RIGHT.csv +11 -0
- teradataml/data/B_loan.csv +49 -0
- teradataml/data/BuoyData2.csv +17 -0
- teradataml/data/CONVOLVE2_COMPLEX_LEFT.csv +5 -0
- teradataml/data/CONVOLVE2_COMPLEX_RIGHT.csv +5 -0
- teradataml/data/Convolve2RealsLeft.csv +5 -0
- teradataml/data/Convolve2RealsRight.csv +5 -0
- teradataml/data/Convolve2ValidLeft.csv +11 -0
- teradataml/data/Convolve2ValidRight.csv +11 -0
- teradataml/data/DFFTConv_Real_8_8.csv +65 -0
- teradataml/data/Employee.csv +5 -0
- teradataml/data/Employee_Address.csv +4 -0
- teradataml/data/Employee_roles.csv +5 -0
- teradataml/data/JulesBelvezeDummyData.csv +100 -0
- teradataml/data/Mall_customer_data.csv +201 -0
- teradataml/data/Orders1_12mf.csv +25 -0
- teradataml/data/Pi_loan.csv +7 -0
- teradataml/data/SMOOTHED_DATA.csv +7 -0
- teradataml/data/TestDFFT8.csv +9 -0
- teradataml/data/TestRiver.csv +109 -0
- teradataml/data/Traindata.csv +28 -0
- teradataml/data/__init__.py +0 -0
- teradataml/data/acf.csv +17 -0
- teradataml/data/adaboost_example.json +34 -0
- teradataml/data/adaboostpredict_example.json +24 -0
- teradataml/data/additional_table.csv +11 -0
- teradataml/data/admissions_test.csv +21 -0
- teradataml/data/admissions_train.csv +41 -0
- teradataml/data/admissions_train_nulls.csv +41 -0
- teradataml/data/advertising.csv +201 -0
- teradataml/data/ageandheight.csv +13 -0
- teradataml/data/ageandpressure.csv +31 -0
- teradataml/data/amazon_reviews_25.csv +26 -0
- teradataml/data/antiselect_example.json +36 -0
- teradataml/data/antiselect_input.csv +8 -0
- teradataml/data/antiselect_input_mixed_case.csv +8 -0
- teradataml/data/applicant_external.csv +7 -0
- teradataml/data/applicant_reference.csv +7 -0
- teradataml/data/apriori_example.json +22 -0
- teradataml/data/arima_example.json +9 -0
- teradataml/data/assortedtext_input.csv +8 -0
- teradataml/data/attribution_example.json +34 -0
- teradataml/data/attribution_sample_table.csv +27 -0
- teradataml/data/attribution_sample_table1.csv +6 -0
- teradataml/data/attribution_sample_table2.csv +11 -0
- teradataml/data/bank_churn.csv +10001 -0
- teradataml/data/bank_marketing.csv +11163 -0
- teradataml/data/bank_web_clicks1.csv +43 -0
- teradataml/data/bank_web_clicks2.csv +91 -0
- teradataml/data/bank_web_url.csv +85 -0
- teradataml/data/barrier.csv +2 -0
- teradataml/data/barrier_new.csv +3 -0
- teradataml/data/betweenness_example.json +14 -0
- teradataml/data/bike_sharing.csv +732 -0
- teradataml/data/bin_breaks.csv +8 -0
- teradataml/data/bin_fit_ip.csv +4 -0
- teradataml/data/binary_complex_left.csv +11 -0
- teradataml/data/binary_complex_right.csv +11 -0
- teradataml/data/binary_matrix_complex_left.csv +21 -0
- teradataml/data/binary_matrix_complex_right.csv +21 -0
- teradataml/data/binary_matrix_real_left.csv +21 -0
- teradataml/data/binary_matrix_real_right.csv +21 -0
- teradataml/data/blood2ageandweight.csv +26 -0
- teradataml/data/bmi.csv +501 -0
- teradataml/data/boston.csv +507 -0
- teradataml/data/boston2cols.csv +721 -0
- teradataml/data/breast_cancer.csv +570 -0
- teradataml/data/buoydata_mix.csv +11 -0
- teradataml/data/burst_data.csv +5 -0
- teradataml/data/burst_example.json +21 -0
- teradataml/data/byom_example.json +34 -0
- teradataml/data/bytes_table.csv +4 -0
- teradataml/data/cal_housing_ex_raw.csv +70 -0
- teradataml/data/callers.csv +7 -0
- teradataml/data/calls.csv +10 -0
- teradataml/data/cars_hist.csv +33 -0
- teradataml/data/cat_table.csv +25 -0
- teradataml/data/ccm_example.json +32 -0
- teradataml/data/ccm_input.csv +91 -0
- teradataml/data/ccm_input2.csv +13 -0
- teradataml/data/ccmexample.csv +101 -0
- teradataml/data/ccmprepare_example.json +9 -0
- teradataml/data/ccmprepare_input.csv +91 -0
- teradataml/data/cfilter_example.json +12 -0
- teradataml/data/changepointdetection_example.json +18 -0
- teradataml/data/changepointdetectionrt_example.json +8 -0
- teradataml/data/chi_sq.csv +3 -0
- teradataml/data/churn_data.csv +14 -0
- teradataml/data/churn_emission.csv +35 -0
- teradataml/data/churn_initial.csv +3 -0
- teradataml/data/churn_state_transition.csv +5 -0
- teradataml/data/citedges_2.csv +745 -0
- teradataml/data/citvertices_2.csv +1210 -0
- teradataml/data/clicks2.csv +16 -0
- teradataml/data/clickstream.csv +13 -0
- teradataml/data/clickstream1.csv +11 -0
- teradataml/data/closeness_example.json +16 -0
- teradataml/data/complaints.csv +21 -0
- teradataml/data/complaints_mini.csv +3 -0
- teradataml/data/complaints_test_tokenized.csv +353 -0
- teradataml/data/complaints_testtoken.csv +224 -0
- teradataml/data/complaints_tokens_model.csv +348 -0
- teradataml/data/complaints_tokens_test.csv +353 -0
- teradataml/data/complaints_traintoken.csv +472 -0
- teradataml/data/computers_category.csv +1001 -0
- teradataml/data/computers_test1.csv +1252 -0
- teradataml/data/computers_train1.csv +5009 -0
- teradataml/data/computers_train1_clustered.csv +5009 -0
- teradataml/data/confusionmatrix_example.json +9 -0
- teradataml/data/conversion_event_table.csv +3 -0
- teradataml/data/corr_input.csv +17 -0
- teradataml/data/correlation_example.json +11 -0
- teradataml/data/covid_confirm_sd.csv +83 -0
- teradataml/data/coxhazardratio_example.json +39 -0
- teradataml/data/coxph_example.json +15 -0
- teradataml/data/coxsurvival_example.json +28 -0
- teradataml/data/cpt.csv +41 -0
- teradataml/data/credit_ex_merged.csv +45 -0
- teradataml/data/creditcard_data.csv +1001 -0
- teradataml/data/customer_loyalty.csv +301 -0
- teradataml/data/customer_loyalty_newseq.csv +31 -0
- teradataml/data/customer_segmentation_test.csv +2628 -0
- teradataml/data/customer_segmentation_train.csv +8069 -0
- teradataml/data/dataframe_example.json +173 -0
- teradataml/data/decisionforest_example.json +37 -0
- teradataml/data/decisionforestpredict_example.json +38 -0
- teradataml/data/decisiontree_example.json +21 -0
- teradataml/data/decisiontreepredict_example.json +45 -0
- teradataml/data/dfft2_size4_real.csv +17 -0
- teradataml/data/dfft2_test_matrix16.csv +17 -0
- teradataml/data/dfft2conv_real_4_4.csv +65 -0
- teradataml/data/diabetes.csv +443 -0
- teradataml/data/diabetes_test.csv +89 -0
- teradataml/data/dict_table.csv +5 -0
- teradataml/data/docperterm_table.csv +4 -0
- teradataml/data/docs/__init__.py +1 -0
- teradataml/data/docs/byom/__init__.py +0 -0
- teradataml/data/docs/byom/docs/DataRobotPredict.py +180 -0
- teradataml/data/docs/byom/docs/DataikuPredict.py +217 -0
- teradataml/data/docs/byom/docs/H2OPredict.py +325 -0
- teradataml/data/docs/byom/docs/ONNXEmbeddings.py +242 -0
- teradataml/data/docs/byom/docs/ONNXPredict.py +283 -0
- teradataml/data/docs/byom/docs/ONNXSeq2Seq.py +255 -0
- teradataml/data/docs/byom/docs/PMMLPredict.py +278 -0
- teradataml/data/docs/byom/docs/__init__.py +0 -0
- teradataml/data/docs/sqle/__init__.py +0 -0
- teradataml/data/docs/sqle/docs_17_10/Antiselect.py +83 -0
- teradataml/data/docs/sqle/docs_17_10/Attribution.py +200 -0
- teradataml/data/docs/sqle/docs_17_10/BincodeFit.py +172 -0
- teradataml/data/docs/sqle/docs_17_10/BincodeTransform.py +131 -0
- teradataml/data/docs/sqle/docs_17_10/CategoricalSummary.py +86 -0
- teradataml/data/docs/sqle/docs_17_10/ChiSq.py +90 -0
- teradataml/data/docs/sqle/docs_17_10/ColumnSummary.py +86 -0
- teradataml/data/docs/sqle/docs_17_10/ConvertTo.py +96 -0
- teradataml/data/docs/sqle/docs_17_10/DecisionForestPredict.py +139 -0
- teradataml/data/docs/sqle/docs_17_10/DecisionTreePredict.py +152 -0
- teradataml/data/docs/sqle/docs_17_10/FTest.py +161 -0
- teradataml/data/docs/sqle/docs_17_10/FillRowId.py +83 -0
- teradataml/data/docs/sqle/docs_17_10/Fit.py +88 -0
- teradataml/data/docs/sqle/docs_17_10/GLMPredict.py +144 -0
- teradataml/data/docs/sqle/docs_17_10/GetRowsWithMissingValues.py +85 -0
- teradataml/data/docs/sqle/docs_17_10/GetRowsWithoutMissingValues.py +82 -0
- teradataml/data/docs/sqle/docs_17_10/Histogram.py +165 -0
- teradataml/data/docs/sqle/docs_17_10/MovingAverage.py +134 -0
- teradataml/data/docs/sqle/docs_17_10/NGramSplitter.py +209 -0
- teradataml/data/docs/sqle/docs_17_10/NPath.py +266 -0
- teradataml/data/docs/sqle/docs_17_10/NaiveBayesPredict.py +116 -0
- teradataml/data/docs/sqle/docs_17_10/NaiveBayesTextClassifierPredict.py +176 -0
- teradataml/data/docs/sqle/docs_17_10/NumApply.py +147 -0
- teradataml/data/docs/sqle/docs_17_10/OneHotEncodingFit.py +135 -0
- teradataml/data/docs/sqle/docs_17_10/OneHotEncodingTransform.py +109 -0
- teradataml/data/docs/sqle/docs_17_10/OutlierFilterFit.py +166 -0
- teradataml/data/docs/sqle/docs_17_10/OutlierFilterTransform.py +105 -0
- teradataml/data/docs/sqle/docs_17_10/Pack.py +128 -0
- teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesFit.py +112 -0
- teradataml/data/docs/sqle/docs_17_10/PolynomialFeaturesTransform.py +102 -0
- teradataml/data/docs/sqle/docs_17_10/QQNorm.py +105 -0
- teradataml/data/docs/sqle/docs_17_10/RoundColumns.py +110 -0
- teradataml/data/docs/sqle/docs_17_10/RowNormalizeFit.py +118 -0
- teradataml/data/docs/sqle/docs_17_10/RowNormalizeTransform.py +99 -0
- teradataml/data/docs/sqle/docs_17_10/SVMSparsePredict.py +153 -0
- teradataml/data/docs/sqle/docs_17_10/ScaleFit.py +197 -0
- teradataml/data/docs/sqle/docs_17_10/ScaleTransform.py +99 -0
- teradataml/data/docs/sqle/docs_17_10/Sessionize.py +114 -0
- teradataml/data/docs/sqle/docs_17_10/SimpleImputeFit.py +116 -0
- teradataml/data/docs/sqle/docs_17_10/SimpleImputeTransform.py +98 -0
- teradataml/data/docs/sqle/docs_17_10/StrApply.py +187 -0
- teradataml/data/docs/sqle/docs_17_10/StringSimilarity.py +146 -0
- teradataml/data/docs/sqle/docs_17_10/Transform.py +105 -0
- teradataml/data/docs/sqle/docs_17_10/UnivariateStatistics.py +142 -0
- teradataml/data/docs/sqle/docs_17_10/Unpack.py +214 -0
- teradataml/data/docs/sqle/docs_17_10/WhichMax.py +83 -0
- teradataml/data/docs/sqle/docs_17_10/WhichMin.py +83 -0
- teradataml/data/docs/sqle/docs_17_10/ZTest.py +155 -0
- teradataml/data/docs/sqle/docs_17_10/__init__.py +0 -0
- teradataml/data/docs/sqle/docs_17_20/ANOVA.py +186 -0
- teradataml/data/docs/sqle/docs_17_20/Antiselect.py +83 -0
- teradataml/data/docs/sqle/docs_17_20/Apriori.py +138 -0
- teradataml/data/docs/sqle/docs_17_20/Attribution.py +201 -0
- teradataml/data/docs/sqle/docs_17_20/BincodeFit.py +172 -0
- teradataml/data/docs/sqle/docs_17_20/BincodeTransform.py +139 -0
- teradataml/data/docs/sqle/docs_17_20/CFilter.py +132 -0
- teradataml/data/docs/sqle/docs_17_20/CategoricalSummary.py +86 -0
- teradataml/data/docs/sqle/docs_17_20/ChiSq.py +90 -0
- teradataml/data/docs/sqle/docs_17_20/ClassificationEvaluator.py +166 -0
- teradataml/data/docs/sqle/docs_17_20/ColumnSummary.py +86 -0
- teradataml/data/docs/sqle/docs_17_20/ColumnTransformer.py +246 -0
- teradataml/data/docs/sqle/docs_17_20/ConvertTo.py +113 -0
- teradataml/data/docs/sqle/docs_17_20/DecisionForest.py +280 -0
- teradataml/data/docs/sqle/docs_17_20/DecisionForestPredict.py +144 -0
- teradataml/data/docs/sqle/docs_17_20/DecisionTreePredict.py +136 -0
- teradataml/data/docs/sqle/docs_17_20/FTest.py +240 -0
- teradataml/data/docs/sqle/docs_17_20/FillRowId.py +83 -0
- teradataml/data/docs/sqle/docs_17_20/Fit.py +88 -0
- teradataml/data/docs/sqle/docs_17_20/GLM.py +541 -0
- teradataml/data/docs/sqle/docs_17_20/GLMPerSegment.py +415 -0
- teradataml/data/docs/sqle/docs_17_20/GLMPredict.py +144 -0
- teradataml/data/docs/sqle/docs_17_20/GLMPredictPerSegment.py +233 -0
- teradataml/data/docs/sqle/docs_17_20/GetFutileColumns.py +125 -0
- teradataml/data/docs/sqle/docs_17_20/GetRowsWithMissingValues.py +109 -0
- teradataml/data/docs/sqle/docs_17_20/GetRowsWithoutMissingValues.py +106 -0
- teradataml/data/docs/sqle/docs_17_20/Histogram.py +224 -0
- teradataml/data/docs/sqle/docs_17_20/KMeans.py +251 -0
- teradataml/data/docs/sqle/docs_17_20/KMeansPredict.py +144 -0
- teradataml/data/docs/sqle/docs_17_20/KNN.py +215 -0
- teradataml/data/docs/sqle/docs_17_20/MovingAverage.py +134 -0
- teradataml/data/docs/sqle/docs_17_20/NERExtractor.py +121 -0
- teradataml/data/docs/sqle/docs_17_20/NGramSplitter.py +209 -0
- teradataml/data/docs/sqle/docs_17_20/NPath.py +266 -0
- teradataml/data/docs/sqle/docs_17_20/NaiveBayes.py +162 -0
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesPredict.py +116 -0
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierPredict.py +177 -0
- teradataml/data/docs/sqle/docs_17_20/NaiveBayesTextClassifierTrainer.py +127 -0
- teradataml/data/docs/sqle/docs_17_20/NonLinearCombineFit.py +119 -0
- teradataml/data/docs/sqle/docs_17_20/NonLinearCombineTransform.py +112 -0
- teradataml/data/docs/sqle/docs_17_20/NumApply.py +147 -0
- teradataml/data/docs/sqle/docs_17_20/OneClassSVM.py +307 -0
- teradataml/data/docs/sqle/docs_17_20/OneClassSVMPredict.py +185 -0
- teradataml/data/docs/sqle/docs_17_20/OneHotEncodingFit.py +231 -0
- teradataml/data/docs/sqle/docs_17_20/OneHotEncodingTransform.py +121 -0
- teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingFit.py +220 -0
- teradataml/data/docs/sqle/docs_17_20/OrdinalEncodingTransform.py +127 -0
- teradataml/data/docs/sqle/docs_17_20/OutlierFilterFit.py +191 -0
- teradataml/data/docs/sqle/docs_17_20/OutlierFilterTransform.py +117 -0
- teradataml/data/docs/sqle/docs_17_20/Pack.py +128 -0
- teradataml/data/docs/sqle/docs_17_20/Pivoting.py +279 -0
- teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesFit.py +112 -0
- teradataml/data/docs/sqle/docs_17_20/PolynomialFeaturesTransform.py +112 -0
- teradataml/data/docs/sqle/docs_17_20/QQNorm.py +105 -0
- teradataml/data/docs/sqle/docs_17_20/ROC.py +164 -0
- teradataml/data/docs/sqle/docs_17_20/RandomProjectionFit.py +155 -0
- teradataml/data/docs/sqle/docs_17_20/RandomProjectionMinComponents.py +106 -0
- teradataml/data/docs/sqle/docs_17_20/RandomProjectionTransform.py +120 -0
- teradataml/data/docs/sqle/docs_17_20/RegressionEvaluator.py +211 -0
- teradataml/data/docs/sqle/docs_17_20/RoundColumns.py +109 -0
- teradataml/data/docs/sqle/docs_17_20/RowNormalizeFit.py +118 -0
- teradataml/data/docs/sqle/docs_17_20/RowNormalizeTransform.py +111 -0
- teradataml/data/docs/sqle/docs_17_20/SMOTE.py +212 -0
- teradataml/data/docs/sqle/docs_17_20/SVM.py +414 -0
- teradataml/data/docs/sqle/docs_17_20/SVMPredict.py +213 -0
- teradataml/data/docs/sqle/docs_17_20/SVMSparsePredict.py +153 -0
- teradataml/data/docs/sqle/docs_17_20/ScaleFit.py +315 -0
- teradataml/data/docs/sqle/docs_17_20/ScaleTransform.py +202 -0
- teradataml/data/docs/sqle/docs_17_20/SentimentExtractor.py +206 -0
- teradataml/data/docs/sqle/docs_17_20/Sessionize.py +114 -0
- teradataml/data/docs/sqle/docs_17_20/Shap.py +225 -0
- teradataml/data/docs/sqle/docs_17_20/Silhouette.py +153 -0
- teradataml/data/docs/sqle/docs_17_20/SimpleImputeFit.py +116 -0
- teradataml/data/docs/sqle/docs_17_20/SimpleImputeTransform.py +109 -0
- teradataml/data/docs/sqle/docs_17_20/StrApply.py +187 -0
- teradataml/data/docs/sqle/docs_17_20/StringSimilarity.py +146 -0
- teradataml/data/docs/sqle/docs_17_20/TDDecisionForestPredict.py +207 -0
- teradataml/data/docs/sqle/docs_17_20/TDGLMPredict.py +333 -0
- teradataml/data/docs/sqle/docs_17_20/TDNaiveBayesPredict.py +189 -0
- teradataml/data/docs/sqle/docs_17_20/TFIDF.py +142 -0
- teradataml/data/docs/sqle/docs_17_20/TargetEncodingFit.py +267 -0
- teradataml/data/docs/sqle/docs_17_20/TargetEncodingTransform.py +141 -0
- teradataml/data/docs/sqle/docs_17_20/TextMorph.py +119 -0
- teradataml/data/docs/sqle/docs_17_20/TextParser.py +224 -0
- teradataml/data/docs/sqle/docs_17_20/TrainTestSplit.py +160 -0
- teradataml/data/docs/sqle/docs_17_20/Transform.py +123 -0
- teradataml/data/docs/sqle/docs_17_20/UnivariateStatistics.py +142 -0
- teradataml/data/docs/sqle/docs_17_20/Unpack.py +214 -0
- teradataml/data/docs/sqle/docs_17_20/Unpivoting.py +216 -0
- teradataml/data/docs/sqle/docs_17_20/VectorDistance.py +169 -0
- teradataml/data/docs/sqle/docs_17_20/WhichMax.py +83 -0
- teradataml/data/docs/sqle/docs_17_20/WhichMin.py +83 -0
- teradataml/data/docs/sqle/docs_17_20/WordEmbeddings.py +237 -0
- teradataml/data/docs/sqle/docs_17_20/XGBoost.py +362 -0
- teradataml/data/docs/sqle/docs_17_20/XGBoostPredict.py +281 -0
- teradataml/data/docs/sqle/docs_17_20/ZTest.py +220 -0
- teradataml/data/docs/sqle/docs_17_20/__init__.py +0 -0
- teradataml/data/docs/tableoperator/__init__.py +0 -0
- teradataml/data/docs/tableoperator/docs_17_00/ReadNOS.py +430 -0
- teradataml/data/docs/tableoperator/docs_17_00/__init__.py +0 -0
- teradataml/data/docs/tableoperator/docs_17_05/ReadNOS.py +430 -0
- teradataml/data/docs/tableoperator/docs_17_05/WriteNOS.py +348 -0
- teradataml/data/docs/tableoperator/docs_17_05/__init__.py +0 -0
- teradataml/data/docs/tableoperator/docs_17_10/ReadNOS.py +429 -0
- teradataml/data/docs/tableoperator/docs_17_10/WriteNOS.py +348 -0
- teradataml/data/docs/tableoperator/docs_17_10/__init__.py +0 -0
- teradataml/data/docs/tableoperator/docs_17_20/Image2Matrix.py +118 -0
- teradataml/data/docs/tableoperator/docs_17_20/ReadNOS.py +440 -0
- teradataml/data/docs/tableoperator/docs_17_20/WriteNOS.py +387 -0
- teradataml/data/docs/tableoperator/docs_17_20/__init__.py +0 -0
- teradataml/data/docs/uaf/__init__.py +0 -0
- teradataml/data/docs/uaf/docs_17_20/ACF.py +186 -0
- teradataml/data/docs/uaf/docs_17_20/ArimaEstimate.py +370 -0
- teradataml/data/docs/uaf/docs_17_20/ArimaForecast.py +172 -0
- teradataml/data/docs/uaf/docs_17_20/ArimaValidate.py +161 -0
- teradataml/data/docs/uaf/docs_17_20/ArimaXEstimate.py +293 -0
- teradataml/data/docs/uaf/docs_17_20/AutoArima.py +354 -0
- teradataml/data/docs/uaf/docs_17_20/BinaryMatrixOp.py +248 -0
- teradataml/data/docs/uaf/docs_17_20/BinarySeriesOp.py +252 -0
- teradataml/data/docs/uaf/docs_17_20/BreuschGodfrey.py +178 -0
- teradataml/data/docs/uaf/docs_17_20/BreuschPaganGodfrey.py +175 -0
- teradataml/data/docs/uaf/docs_17_20/Convolve.py +230 -0
- teradataml/data/docs/uaf/docs_17_20/Convolve2.py +218 -0
- teradataml/data/docs/uaf/docs_17_20/CopyArt.py +145 -0
- teradataml/data/docs/uaf/docs_17_20/CumulPeriodogram.py +185 -0
- teradataml/data/docs/uaf/docs_17_20/DFFT.py +204 -0
- teradataml/data/docs/uaf/docs_17_20/DFFT2.py +216 -0
- teradataml/data/docs/uaf/docs_17_20/DFFT2Conv.py +216 -0
- teradataml/data/docs/uaf/docs_17_20/DFFTConv.py +192 -0
- teradataml/data/docs/uaf/docs_17_20/DIFF.py +175 -0
- teradataml/data/docs/uaf/docs_17_20/DTW.py +180 -0
- teradataml/data/docs/uaf/docs_17_20/DWT.py +235 -0
- teradataml/data/docs/uaf/docs_17_20/DWT2D.py +217 -0
- teradataml/data/docs/uaf/docs_17_20/DickeyFuller.py +142 -0
- teradataml/data/docs/uaf/docs_17_20/DurbinWatson.py +184 -0
- teradataml/data/docs/uaf/docs_17_20/ExtractResults.py +185 -0
- teradataml/data/docs/uaf/docs_17_20/FilterFactory1d.py +160 -0
- teradataml/data/docs/uaf/docs_17_20/FitMetrics.py +172 -0
- teradataml/data/docs/uaf/docs_17_20/GenseriesFormula.py +206 -0
- teradataml/data/docs/uaf/docs_17_20/GenseriesSinusoids.py +143 -0
- teradataml/data/docs/uaf/docs_17_20/GoldfeldQuandt.py +198 -0
- teradataml/data/docs/uaf/docs_17_20/HoltWintersForecaster.py +260 -0
- teradataml/data/docs/uaf/docs_17_20/IDFFT.py +165 -0
- teradataml/data/docs/uaf/docs_17_20/IDFFT2.py +191 -0
- teradataml/data/docs/uaf/docs_17_20/IDWT.py +236 -0
- teradataml/data/docs/uaf/docs_17_20/IDWT2D.py +226 -0
- teradataml/data/docs/uaf/docs_17_20/IQR.py +134 -0
- teradataml/data/docs/uaf/docs_17_20/InputValidator.py +121 -0
- teradataml/data/docs/uaf/docs_17_20/LineSpec.py +156 -0
- teradataml/data/docs/uaf/docs_17_20/LinearRegr.py +215 -0
- teradataml/data/docs/uaf/docs_17_20/MAMean.py +174 -0
- teradataml/data/docs/uaf/docs_17_20/MInfo.py +134 -0
- teradataml/data/docs/uaf/docs_17_20/Matrix2Image.py +297 -0
- teradataml/data/docs/uaf/docs_17_20/MatrixMultiply.py +145 -0
- teradataml/data/docs/uaf/docs_17_20/MultivarRegr.py +191 -0
- teradataml/data/docs/uaf/docs_17_20/PACF.py +157 -0
- teradataml/data/docs/uaf/docs_17_20/Portman.py +217 -0
- teradataml/data/docs/uaf/docs_17_20/PowerSpec.py +203 -0
- teradataml/data/docs/uaf/docs_17_20/PowerTransform.py +155 -0
- teradataml/data/docs/uaf/docs_17_20/Resample.py +237 -0
- teradataml/data/docs/uaf/docs_17_20/SAX.py +246 -0
- teradataml/data/docs/uaf/docs_17_20/SInfo.py +123 -0
- teradataml/data/docs/uaf/docs_17_20/SeasonalNormalize.py +173 -0
- teradataml/data/docs/uaf/docs_17_20/SelectionCriteria.py +174 -0
- teradataml/data/docs/uaf/docs_17_20/SignifPeriodicities.py +171 -0
- teradataml/data/docs/uaf/docs_17_20/SignifResidmean.py +164 -0
- teradataml/data/docs/uaf/docs_17_20/SimpleExp.py +180 -0
- teradataml/data/docs/uaf/docs_17_20/Smoothma.py +208 -0
- teradataml/data/docs/uaf/docs_17_20/TrackingOp.py +151 -0
- teradataml/data/docs/uaf/docs_17_20/UNDIFF.py +171 -0
- teradataml/data/docs/uaf/docs_17_20/Unnormalize.py +202 -0
- teradataml/data/docs/uaf/docs_17_20/WhitesGeneral.py +171 -0
- teradataml/data/docs/uaf/docs_17_20/WindowDFFT.py +368 -0
- teradataml/data/docs/uaf/docs_17_20/__init__.py +0 -0
- teradataml/data/dtw_example.json +18 -0
- teradataml/data/dtw_t1.csv +11 -0
- teradataml/data/dtw_t2.csv +4 -0
- teradataml/data/dwt2d_dataTable.csv +65 -0
- teradataml/data/dwt2d_example.json +16 -0
- teradataml/data/dwt_dataTable.csv +8 -0
- teradataml/data/dwt_example.json +15 -0
- teradataml/data/dwt_filterTable.csv +3 -0
- teradataml/data/dwt_filter_dim.csv +5 -0
- teradataml/data/emission.csv +9 -0
- teradataml/data/emp_table_by_dept.csv +19 -0
- teradataml/data/employee_info.csv +4 -0
- teradataml/data/employee_table.csv +6 -0
- teradataml/data/excluding_event_table.csv +2 -0
- teradataml/data/finance_data.csv +6 -0
- teradataml/data/finance_data2.csv +61 -0
- teradataml/data/finance_data3.csv +93 -0
- teradataml/data/finance_data4.csv +13 -0
- teradataml/data/fish.csv +160 -0
- teradataml/data/fm_blood2ageandweight.csv +26 -0
- teradataml/data/fmeasure_example.json +12 -0
- teradataml/data/followers_leaders.csv +10 -0
- teradataml/data/fpgrowth_example.json +12 -0
- teradataml/data/frequentpaths_example.json +29 -0
- teradataml/data/friends.csv +9 -0
- teradataml/data/fs_input.csv +33 -0
- teradataml/data/fs_input1.csv +33 -0
- teradataml/data/genData.csv +513 -0
- teradataml/data/geodataframe_example.json +40 -0
- teradataml/data/glass_types.csv +215 -0
- teradataml/data/glm_admissions_model.csv +12 -0
- teradataml/data/glm_example.json +56 -0
- teradataml/data/glml1l2_example.json +28 -0
- teradataml/data/glml1l2predict_example.json +54 -0
- teradataml/data/glmpredict_example.json +54 -0
- teradataml/data/gq_t1.csv +21 -0
- teradataml/data/grocery_transaction.csv +19 -0
- teradataml/data/hconvolve_complex_right.csv +5 -0
- teradataml/data/hconvolve_complex_rightmulti.csv +5 -0
- teradataml/data/histogram_example.json +12 -0
- teradataml/data/hmmdecoder_example.json +79 -0
- teradataml/data/hmmevaluator_example.json +25 -0
- teradataml/data/hmmsupervised_example.json +10 -0
- teradataml/data/hmmunsupervised_example.json +8 -0
- teradataml/data/hnsw_alter_data.csv +5 -0
- teradataml/data/hnsw_data.csv +10 -0
- teradataml/data/house_values.csv +12 -0
- teradataml/data/house_values2.csv +13 -0
- teradataml/data/housing_cat.csv +7 -0
- teradataml/data/housing_data.csv +9 -0
- teradataml/data/housing_test.csv +47 -0
- teradataml/data/housing_test_binary.csv +47 -0
- teradataml/data/housing_train.csv +493 -0
- teradataml/data/housing_train_attribute.csv +5 -0
- teradataml/data/housing_train_binary.csv +437 -0
- teradataml/data/housing_train_parameter.csv +2 -0
- teradataml/data/housing_train_response.csv +493 -0
- teradataml/data/housing_train_segment.csv +201 -0
- teradataml/data/ibm_stock.csv +370 -0
- teradataml/data/ibm_stock1.csv +370 -0
- teradataml/data/identitymatch_example.json +22 -0
- teradataml/data/idf_table.csv +4 -0
- teradataml/data/idwt2d_dataTable.csv +5 -0
- teradataml/data/idwt_dataTable.csv +8 -0
- teradataml/data/idwt_filterTable.csv +3 -0
- teradataml/data/impressions.csv +101 -0
- teradataml/data/inflation.csv +21 -0
- teradataml/data/initial.csv +3 -0
- teradataml/data/insect2Cols.csv +61 -0
- teradataml/data/insect_sprays.csv +13 -0
- teradataml/data/insurance.csv +1339 -0
- teradataml/data/interpolator_example.json +13 -0
- teradataml/data/interval_data.csv +5 -0
- teradataml/data/iris_altinput.csv +481 -0
- teradataml/data/iris_attribute_output.csv +8 -0
- teradataml/data/iris_attribute_test.csv +121 -0
- teradataml/data/iris_attribute_train.csv +481 -0
- teradataml/data/iris_category_expect_predict.csv +31 -0
- teradataml/data/iris_data.csv +151 -0
- teradataml/data/iris_input.csv +151 -0
- teradataml/data/iris_response_train.csv +121 -0
- teradataml/data/iris_test.csv +31 -0
- teradataml/data/iris_train.csv +121 -0
- teradataml/data/join_table1.csv +4 -0
- teradataml/data/join_table2.csv +4 -0
- teradataml/data/jsons/anly_function_name.json +7 -0
- teradataml/data/jsons/byom/ONNXSeq2Seq.json +287 -0
- teradataml/data/jsons/byom/dataikupredict.json +148 -0
- teradataml/data/jsons/byom/datarobotpredict.json +147 -0
- teradataml/data/jsons/byom/h2opredict.json +195 -0
- teradataml/data/jsons/byom/onnxembeddings.json +267 -0
- teradataml/data/jsons/byom/onnxpredict.json +187 -0
- teradataml/data/jsons/byom/pmmlpredict.json +147 -0
- teradataml/data/jsons/paired_functions.json +450 -0
- teradataml/data/jsons/sqle/16.20/Antiselect.json +56 -0
- teradataml/data/jsons/sqle/16.20/Attribution.json +249 -0
- teradataml/data/jsons/sqle/16.20/DecisionForestPredict.json +156 -0
- teradataml/data/jsons/sqle/16.20/DecisionTreePredict.json +170 -0
- teradataml/data/jsons/sqle/16.20/GLMPredict.json +122 -0
- teradataml/data/jsons/sqle/16.20/MovingAverage.json +367 -0
- teradataml/data/jsons/sqle/16.20/NGramSplitter.json +239 -0
- teradataml/data/jsons/sqle/16.20/NaiveBayesPredict.json +136 -0
- teradataml/data/jsons/sqle/16.20/NaiveBayesTextClassifierPredict.json +235 -0
- teradataml/data/jsons/sqle/16.20/Pack.json +98 -0
- teradataml/data/jsons/sqle/16.20/SVMSparsePredict.json +162 -0
- teradataml/data/jsons/sqle/16.20/Sessionize.json +105 -0
- teradataml/data/jsons/sqle/16.20/StringSimilarity.json +86 -0
- teradataml/data/jsons/sqle/16.20/Unpack.json +166 -0
- teradataml/data/jsons/sqle/16.20/nPath.json +269 -0
- teradataml/data/jsons/sqle/17.00/Antiselect.json +56 -0
- teradataml/data/jsons/sqle/17.00/Attribution.json +249 -0
- teradataml/data/jsons/sqle/17.00/DecisionForestPredict.json +156 -0
- teradataml/data/jsons/sqle/17.00/DecisionTreePredict.json +170 -0
- teradataml/data/jsons/sqle/17.00/GLMPredict.json +122 -0
- teradataml/data/jsons/sqle/17.00/MovingAverage.json +367 -0
- teradataml/data/jsons/sqle/17.00/NGramSplitter.json +239 -0
- teradataml/data/jsons/sqle/17.00/NaiveBayesPredict.json +136 -0
- teradataml/data/jsons/sqle/17.00/NaiveBayesTextClassifierPredict.json +235 -0
- teradataml/data/jsons/sqle/17.00/Pack.json +98 -0
- teradataml/data/jsons/sqle/17.00/SVMSparsePredict.json +162 -0
- teradataml/data/jsons/sqle/17.00/Sessionize.json +105 -0
- teradataml/data/jsons/sqle/17.00/StringSimilarity.json +86 -0
- teradataml/data/jsons/sqle/17.00/Unpack.json +166 -0
- teradataml/data/jsons/sqle/17.00/nPath.json +269 -0
- teradataml/data/jsons/sqle/17.05/Antiselect.json +56 -0
- teradataml/data/jsons/sqle/17.05/Attribution.json +249 -0
- teradataml/data/jsons/sqle/17.05/DecisionForestPredict.json +156 -0
- teradataml/data/jsons/sqle/17.05/DecisionTreePredict.json +170 -0
- teradataml/data/jsons/sqle/17.05/GLMPredict.json +122 -0
- teradataml/data/jsons/sqle/17.05/MovingAverage.json +367 -0
- teradataml/data/jsons/sqle/17.05/NGramSplitter.json +239 -0
- teradataml/data/jsons/sqle/17.05/NaiveBayesPredict.json +136 -0
- teradataml/data/jsons/sqle/17.05/NaiveBayesTextClassifierPredict.json +235 -0
- teradataml/data/jsons/sqle/17.05/Pack.json +98 -0
- teradataml/data/jsons/sqle/17.05/SVMSparsePredict.json +162 -0
- teradataml/data/jsons/sqle/17.05/Sessionize.json +105 -0
- teradataml/data/jsons/sqle/17.05/StringSimilarity.json +86 -0
- teradataml/data/jsons/sqle/17.05/Unpack.json +166 -0
- teradataml/data/jsons/sqle/17.05/nPath.json +269 -0
- teradataml/data/jsons/sqle/17.10/Antiselect.json +56 -0
- teradataml/data/jsons/sqle/17.10/Attribution.json +249 -0
- teradataml/data/jsons/sqle/17.10/DecisionForestPredict.json +185 -0
- teradataml/data/jsons/sqle/17.10/DecisionTreePredict.json +172 -0
- teradataml/data/jsons/sqle/17.10/GLMPredict.json +151 -0
- teradataml/data/jsons/sqle/17.10/MovingAverage.json +368 -0
- teradataml/data/jsons/sqle/17.10/NGramSplitter.json +239 -0
- teradataml/data/jsons/sqle/17.10/NaiveBayesPredict.json +149 -0
- teradataml/data/jsons/sqle/17.10/NaiveBayesTextClassifierPredict.json +288 -0
- teradataml/data/jsons/sqle/17.10/Pack.json +133 -0
- teradataml/data/jsons/sqle/17.10/SVMSparsePredict.json +193 -0
- teradataml/data/jsons/sqle/17.10/Sessionize.json +105 -0
- teradataml/data/jsons/sqle/17.10/StringSimilarity.json +86 -0
- teradataml/data/jsons/sqle/17.10/TD_BinCodeFit.json +239 -0
- teradataml/data/jsons/sqle/17.10/TD_BinCodeTransform.json +70 -0
- teradataml/data/jsons/sqle/17.10/TD_CategoricalSummary.json +54 -0
- teradataml/data/jsons/sqle/17.10/TD_Chisq.json +68 -0
- teradataml/data/jsons/sqle/17.10/TD_ColumnSummary.json +54 -0
- teradataml/data/jsons/sqle/17.10/TD_ConvertTo.json +69 -0
- teradataml/data/jsons/sqle/17.10/TD_FTest.json +187 -0
- teradataml/data/jsons/sqle/17.10/TD_FillRowID.json +52 -0
- teradataml/data/jsons/sqle/17.10/TD_FunctionFit.json +46 -0
- teradataml/data/jsons/sqle/17.10/TD_FunctionTransform.json +72 -0
- teradataml/data/jsons/sqle/17.10/TD_GetRowsWithMissingValues.json +53 -0
- teradataml/data/jsons/sqle/17.10/TD_GetRowsWithoutMissingValues.json +53 -0
- teradataml/data/jsons/sqle/17.10/TD_Histogram.json +133 -0
- teradataml/data/jsons/sqle/17.10/TD_NumApply.json +147 -0
- teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingFit.json +183 -0
- teradataml/data/jsons/sqle/17.10/TD_OneHotEncodingTransform.json +66 -0
- teradataml/data/jsons/sqle/17.10/TD_OutlierFilterFit.json +197 -0
- teradataml/data/jsons/sqle/17.10/TD_OutlierFilterTransform.json +48 -0
- teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesFit.json +114 -0
- teradataml/data/jsons/sqle/17.10/TD_PolynomialFeaturesTransform.json +72 -0
- teradataml/data/jsons/sqle/17.10/TD_QQNorm.json +112 -0
- teradataml/data/jsons/sqle/17.10/TD_RoundColumns.json +93 -0
- teradataml/data/jsons/sqle/17.10/TD_RowNormalizeFit.json +128 -0
- teradataml/data/jsons/sqle/17.10/TD_RowNormalizeTransform.json +71 -0
- teradataml/data/jsons/sqle/17.10/TD_ScaleFit.json +157 -0
- teradataml/data/jsons/sqle/17.10/TD_ScaleTransform.json +71 -0
- teradataml/data/jsons/sqle/17.10/TD_SimpleImputeFit.json +148 -0
- teradataml/data/jsons/sqle/17.10/TD_SimpleImputeTransform.json +48 -0
- teradataml/data/jsons/sqle/17.10/TD_StrApply.json +240 -0
- teradataml/data/jsons/sqle/17.10/TD_UnivariateStatistics.json +119 -0
- teradataml/data/jsons/sqle/17.10/TD_WhichMax.json +53 -0
- teradataml/data/jsons/sqle/17.10/TD_WhichMin.json +53 -0
- teradataml/data/jsons/sqle/17.10/TD_ZTest.json +171 -0
- teradataml/data/jsons/sqle/17.10/Unpack.json +188 -0
- teradataml/data/jsons/sqle/17.10/nPath.json +269 -0
- teradataml/data/jsons/sqle/17.20/Antiselect.json +56 -0
- teradataml/data/jsons/sqle/17.20/Attribution.json +249 -0
- teradataml/data/jsons/sqle/17.20/DecisionForestPredict.json +185 -0
- teradataml/data/jsons/sqle/17.20/DecisionTreePredict.json +172 -0
- teradataml/data/jsons/sqle/17.20/GLMPredict.json +151 -0
- teradataml/data/jsons/sqle/17.20/MovingAverage.json +367 -0
- teradataml/data/jsons/sqle/17.20/NGramSplitter.json +239 -0
- teradataml/data/jsons/sqle/17.20/NaiveBayesPredict.json +149 -0
- teradataml/data/jsons/sqle/17.20/NaiveBayesTextClassifierPredict.json +287 -0
- teradataml/data/jsons/sqle/17.20/Pack.json +133 -0
- teradataml/data/jsons/sqle/17.20/SVMSparsePredict.json +192 -0
- teradataml/data/jsons/sqle/17.20/Sessionize.json +105 -0
- teradataml/data/jsons/sqle/17.20/StringSimilarity.json +86 -0
- teradataml/data/jsons/sqle/17.20/TD_ANOVA.json +149 -0
- teradataml/data/jsons/sqle/17.20/TD_Apriori.json +181 -0
- teradataml/data/jsons/sqle/17.20/TD_BinCodeFit.json +239 -0
- teradataml/data/jsons/sqle/17.20/TD_BinCodeTransform.json +71 -0
- teradataml/data/jsons/sqle/17.20/TD_CFilter.json +118 -0
- teradataml/data/jsons/sqle/17.20/TD_CategoricalSummary.json +53 -0
- teradataml/data/jsons/sqle/17.20/TD_Chisq.json +68 -0
- teradataml/data/jsons/sqle/17.20/TD_ClassificationEvaluator.json +146 -0
- teradataml/data/jsons/sqle/17.20/TD_ColumnSummary.json +53 -0
- teradataml/data/jsons/sqle/17.20/TD_ColumnTransformer.json +218 -0
- teradataml/data/jsons/sqle/17.20/TD_ConvertTo.json +92 -0
- teradataml/data/jsons/sqle/17.20/TD_DecisionForest.json +260 -0
- teradataml/data/jsons/sqle/17.20/TD_DecisionForestPredict.json +139 -0
- teradataml/data/jsons/sqle/17.20/TD_FTest.json +269 -0
- teradataml/data/jsons/sqle/17.20/TD_FillRowID.json +52 -0
- teradataml/data/jsons/sqle/17.20/TD_FunctionFit.json +46 -0
- teradataml/data/jsons/sqle/17.20/TD_FunctionTransform.json +72 -0
- teradataml/data/jsons/sqle/17.20/TD_GLM.json +507 -0
- teradataml/data/jsons/sqle/17.20/TD_GLMPREDICT.json +168 -0
- teradataml/data/jsons/sqle/17.20/TD_GLMPerSegment.json +411 -0
- teradataml/data/jsons/sqle/17.20/TD_GLMPredictPerSegment.json +146 -0
- teradataml/data/jsons/sqle/17.20/TD_GetFutileColumns.json +93 -0
- teradataml/data/jsons/sqle/17.20/TD_GetRowsWithMissingValues.json +76 -0
- teradataml/data/jsons/sqle/17.20/TD_GetRowsWithoutMissingValues.json +76 -0
- teradataml/data/jsons/sqle/17.20/TD_Histogram.json +152 -0
- teradataml/data/jsons/sqle/17.20/TD_KMeans.json +232 -0
- teradataml/data/jsons/sqle/17.20/TD_KMeansPredict.json +87 -0
- teradataml/data/jsons/sqle/17.20/TD_KNN.json +262 -0
- teradataml/data/jsons/sqle/17.20/TD_NERExtractor.json +145 -0
- teradataml/data/jsons/sqle/17.20/TD_NaiveBayes.json +193 -0
- teradataml/data/jsons/sqle/17.20/TD_NaiveBayesPredict.json +212 -0
- teradataml/data/jsons/sqle/17.20/TD_NaiveBayesTextClassifierTrainer.json +137 -0
- teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineFit.json +102 -0
- teradataml/data/jsons/sqle/17.20/TD_NonLinearCombineTransform.json +71 -0
- teradataml/data/jsons/sqle/17.20/TD_NumApply.json +147 -0
- teradataml/data/jsons/sqle/17.20/TD_OneClassSVM.json +316 -0
- teradataml/data/jsons/sqle/17.20/TD_OneClassSVMPredict.json +124 -0
- teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingFit.json +271 -0
- teradataml/data/jsons/sqle/17.20/TD_OneHotEncodingTransform.json +65 -0
- teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingFit.json +229 -0
- teradataml/data/jsons/sqle/17.20/TD_OrdinalEncodingTransform.json +75 -0
- teradataml/data/jsons/sqle/17.20/TD_OutlierFilterFit.json +217 -0
- teradataml/data/jsons/sqle/17.20/TD_OutlierFilterTransform.json +48 -0
- teradataml/data/jsons/sqle/17.20/TD_Pivoting.json +280 -0
- teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesFit.json +114 -0
- teradataml/data/jsons/sqle/17.20/TD_PolynomialFeaturesTransform.json +72 -0
- teradataml/data/jsons/sqle/17.20/TD_QQNorm.json +111 -0
- teradataml/data/jsons/sqle/17.20/TD_ROC.json +179 -0
- teradataml/data/jsons/sqle/17.20/TD_RandomProjectionFit.json +179 -0
- teradataml/data/jsons/sqle/17.20/TD_RandomProjectionMinComponents.json +74 -0
- teradataml/data/jsons/sqle/17.20/TD_RandomProjectionTransform.json +74 -0
- teradataml/data/jsons/sqle/17.20/TD_RegressionEvaluator.json +138 -0
- teradataml/data/jsons/sqle/17.20/TD_RoundColumns.json +93 -0
- teradataml/data/jsons/sqle/17.20/TD_RowNormalizeFit.json +128 -0
- teradataml/data/jsons/sqle/17.20/TD_RowNormalizeTransform.json +71 -0
- teradataml/data/jsons/sqle/17.20/TD_SMOTE.json +267 -0
- teradataml/data/jsons/sqle/17.20/TD_SVM.json +389 -0
- teradataml/data/jsons/sqle/17.20/TD_SVMPredict.json +142 -0
- teradataml/data/jsons/sqle/17.20/TD_ScaleFit.json +310 -0
- teradataml/data/jsons/sqle/17.20/TD_ScaleTransform.json +120 -0
- teradataml/data/jsons/sqle/17.20/TD_SentimentExtractor.json +194 -0
- teradataml/data/jsons/sqle/17.20/TD_Shap.json +221 -0
- teradataml/data/jsons/sqle/17.20/TD_Silhouette.json +143 -0
- teradataml/data/jsons/sqle/17.20/TD_SimpleImputeFit.json +147 -0
- teradataml/data/jsons/sqle/17.20/TD_SimpleImputeTransform.json +48 -0
- teradataml/data/jsons/sqle/17.20/TD_StrApply.json +240 -0
- teradataml/data/jsons/sqle/17.20/TD_TFIDF.json +162 -0
- teradataml/data/jsons/sqle/17.20/TD_TargetEncodingFit.json +248 -0
- teradataml/data/jsons/sqle/17.20/TD_TargetEncodingTransform.json +75 -0
- teradataml/data/jsons/sqle/17.20/TD_TextMorph.json +134 -0
- teradataml/data/jsons/sqle/17.20/TD_TextParser.json +297 -0
- teradataml/data/jsons/sqle/17.20/TD_TrainTestSplit.json +142 -0
- teradataml/data/jsons/sqle/17.20/TD_UnivariateStatistics.json +117 -0
- teradataml/data/jsons/sqle/17.20/TD_Unpivoting.json +235 -0
- teradataml/data/jsons/sqle/17.20/TD_VectorDistance.json +183 -0
- teradataml/data/jsons/sqle/17.20/TD_WhichMax.json +53 -0
- teradataml/data/jsons/sqle/17.20/TD_WhichMin.json +53 -0
- teradataml/data/jsons/sqle/17.20/TD_WordEmbeddings.json +241 -0
- teradataml/data/jsons/sqle/17.20/TD_XGBoost.json +330 -0
- teradataml/data/jsons/sqle/17.20/TD_XGBoostPredict.json +195 -0
- teradataml/data/jsons/sqle/17.20/TD_ZTest.json +247 -0
- teradataml/data/jsons/sqle/17.20/Unpack.json +188 -0
- teradataml/data/jsons/sqle/17.20/nPath.json +269 -0
- teradataml/data/jsons/sqle/20.00/AI_AnalyzeSentiment.json +370 -0
- teradataml/data/jsons/sqle/20.00/AI_AskLLM.json +460 -0
- teradataml/data/jsons/sqle/20.00/AI_DetectLanguage.json +385 -0
- teradataml/data/jsons/sqle/20.00/AI_ExtractKeyPhrases.json +369 -0
- teradataml/data/jsons/sqle/20.00/AI_MaskPII.json +369 -0
- teradataml/data/jsons/sqle/20.00/AI_RecognizeEntities.json +369 -0
- teradataml/data/jsons/sqle/20.00/AI_RecognizePIIEntities.json +369 -0
- teradataml/data/jsons/sqle/20.00/AI_TextClassifier.json +400 -0
- teradataml/data/jsons/sqle/20.00/AI_TextEmbeddings.json +401 -0
- teradataml/data/jsons/sqle/20.00/AI_TextSummarize.json +384 -0
- teradataml/data/jsons/sqle/20.00/AI_TextTranslate.json +384 -0
- teradataml/data/jsons/sqle/20.00/TD_API_AzureML.json +151 -0
- teradataml/data/jsons/sqle/20.00/TD_API_Sagemaker.json +182 -0
- teradataml/data/jsons/sqle/20.00/TD_API_VertexAI.json +183 -0
- teradataml/data/jsons/sqle/20.00/TD_HNSW.json +296 -0
- teradataml/data/jsons/sqle/20.00/TD_HNSWPredict.json +206 -0
- teradataml/data/jsons/sqle/20.00/TD_HNSWSummary.json +32 -0
- teradataml/data/jsons/sqle/20.00/TD_KMeans.json +250 -0
- teradataml/data/jsons/sqle/20.00/TD_SMOTE.json +266 -0
- teradataml/data/jsons/sqle/20.00/TD_VectorDistance.json +278 -0
- teradataml/data/jsons/storedprocedure/17.20/TD_COPYART.json +71 -0
- teradataml/data/jsons/storedprocedure/17.20/TD_FILTERFACTORY1D.json +150 -0
- teradataml/data/jsons/tableoperator/17.00/read_nos.json +198 -0
- teradataml/data/jsons/tableoperator/17.05/read_nos.json +198 -0
- teradataml/data/jsons/tableoperator/17.05/write_nos.json +195 -0
- teradataml/data/jsons/tableoperator/17.10/read_nos.json +184 -0
- teradataml/data/jsons/tableoperator/17.10/write_nos.json +195 -0
- teradataml/data/jsons/tableoperator/17.20/IMAGE2MATRIX.json +53 -0
- teradataml/data/jsons/tableoperator/17.20/read_nos.json +183 -0
- teradataml/data/jsons/tableoperator/17.20/write_nos.json +224 -0
- teradataml/data/jsons/uaf/17.20/TD_ACF.json +132 -0
- teradataml/data/jsons/uaf/17.20/TD_ARIMAESTIMATE.json +396 -0
- teradataml/data/jsons/uaf/17.20/TD_ARIMAFORECAST.json +77 -0
- teradataml/data/jsons/uaf/17.20/TD_ARIMAVALIDATE.json +153 -0
- teradataml/data/jsons/uaf/17.20/TD_ARIMAXESTIMATE.json +362 -0
- teradataml/data/jsons/uaf/17.20/TD_AUTOARIMA.json +469 -0
- teradataml/data/jsons/uaf/17.20/TD_BINARYMATRIXOP.json +107 -0
- teradataml/data/jsons/uaf/17.20/TD_BINARYSERIESOP.json +106 -0
- teradataml/data/jsons/uaf/17.20/TD_BREUSCH_GODFREY.json +89 -0
- teradataml/data/jsons/uaf/17.20/TD_BREUSCH_PAGAN_GODFREY.json +104 -0
- teradataml/data/jsons/uaf/17.20/TD_CONVOLVE.json +78 -0
- teradataml/data/jsons/uaf/17.20/TD_CONVOLVE2.json +66 -0
- teradataml/data/jsons/uaf/17.20/TD_CUMUL_PERIODOGRAM.json +87 -0
- teradataml/data/jsons/uaf/17.20/TD_DFFT.json +134 -0
- teradataml/data/jsons/uaf/17.20/TD_DFFT2.json +144 -0
- teradataml/data/jsons/uaf/17.20/TD_DFFT2CONV.json +108 -0
- teradataml/data/jsons/uaf/17.20/TD_DFFTCONV.json +108 -0
- teradataml/data/jsons/uaf/17.20/TD_DICKEY_FULLER.json +78 -0
- teradataml/data/jsons/uaf/17.20/TD_DIFF.json +92 -0
- teradataml/data/jsons/uaf/17.20/TD_DTW.json +114 -0
- teradataml/data/jsons/uaf/17.20/TD_DURBIN_WATSON.json +101 -0
- teradataml/data/jsons/uaf/17.20/TD_DWT.json +173 -0
- teradataml/data/jsons/uaf/17.20/TD_DWT2D.json +160 -0
- teradataml/data/jsons/uaf/17.20/TD_EXTRACT_RESULTS.json +39 -0
- teradataml/data/jsons/uaf/17.20/TD_FITMETRICS.json +101 -0
- teradataml/data/jsons/uaf/17.20/TD_GENSERIES4FORMULA.json +85 -0
- teradataml/data/jsons/uaf/17.20/TD_GENSERIES4SINUSOIDS.json +71 -0
- teradataml/data/jsons/uaf/17.20/TD_GOLDFELD_QUANDT.json +139 -0
- teradataml/data/jsons/uaf/17.20/TD_HOLT_WINTERS_FORECASTER.json +313 -0
- teradataml/data/jsons/uaf/17.20/TD_IDFFT.json +58 -0
- teradataml/data/jsons/uaf/17.20/TD_IDFFT2.json +81 -0
- teradataml/data/jsons/uaf/17.20/TD_IDWT.json +162 -0
- teradataml/data/jsons/uaf/17.20/TD_IDWT2D.json +149 -0
- teradataml/data/jsons/uaf/17.20/TD_INPUTVALIDATOR.json +64 -0
- teradataml/data/jsons/uaf/17.20/TD_IQR.json +117 -0
- teradataml/data/jsons/uaf/17.20/TD_LINEAR_REGR.json +182 -0
- teradataml/data/jsons/uaf/17.20/TD_LINESPEC.json +103 -0
- teradataml/data/jsons/uaf/17.20/TD_MAMEAN.json +181 -0
- teradataml/data/jsons/uaf/17.20/TD_MATRIX2IMAGE.json +209 -0
- teradataml/data/jsons/uaf/17.20/TD_MATRIXMULTIPLY.json +68 -0
- teradataml/data/jsons/uaf/17.20/TD_MINFO.json +67 -0
- teradataml/data/jsons/uaf/17.20/TD_MULTIVAR_REGR.json +179 -0
- teradataml/data/jsons/uaf/17.20/TD_PACF.json +114 -0
- teradataml/data/jsons/uaf/17.20/TD_PORTMAN.json +119 -0
- teradataml/data/jsons/uaf/17.20/TD_POWERSPEC.json +175 -0
- teradataml/data/jsons/uaf/17.20/TD_POWERTRANSFORM.json +98 -0
- teradataml/data/jsons/uaf/17.20/TD_RESAMPLE.json +194 -0
- teradataml/data/jsons/uaf/17.20/TD_SAX.json +210 -0
- teradataml/data/jsons/uaf/17.20/TD_SEASONALNORMALIZE.json +143 -0
- teradataml/data/jsons/uaf/17.20/TD_SELECTION_CRITERIA.json +90 -0
- teradataml/data/jsons/uaf/17.20/TD_SIGNIF_PERIODICITIES.json +80 -0
- teradataml/data/jsons/uaf/17.20/TD_SIGNIF_RESIDMEAN.json +68 -0
- teradataml/data/jsons/uaf/17.20/TD_SIMPLEEXP.json +184 -0
- teradataml/data/jsons/uaf/17.20/TD_SINFO.json +58 -0
- teradataml/data/jsons/uaf/17.20/TD_SMOOTHMA.json +163 -0
- teradataml/data/jsons/uaf/17.20/TD_TRACKINGOP.json +101 -0
- teradataml/data/jsons/uaf/17.20/TD_UNDIFF.json +112 -0
- teradataml/data/jsons/uaf/17.20/TD_UNNORMALIZE.json +95 -0
- teradataml/data/jsons/uaf/17.20/TD_WHITES_GENERAL.json +78 -0
- teradataml/data/jsons/uaf/17.20/TD_WINDOWDFFT.json +410 -0
- teradataml/data/kmeans_example.json +23 -0
- teradataml/data/kmeans_table.csv +10 -0
- teradataml/data/kmeans_us_arrests_data.csv +51 -0
- teradataml/data/knn_example.json +19 -0
- teradataml/data/knnrecommender_example.json +7 -0
- teradataml/data/knnrecommenderpredict_example.json +12 -0
- teradataml/data/lar_example.json +17 -0
- teradataml/data/larpredict_example.json +30 -0
- teradataml/data/lc_new_predictors.csv +5 -0
- teradataml/data/lc_new_reference.csv +9 -0
- teradataml/data/lda_example.json +9 -0
- teradataml/data/ldainference_example.json +15 -0
- teradataml/data/ldatopicsummary_example.json +9 -0
- teradataml/data/levendist_input.csv +13 -0
- teradataml/data/levenshteindistance_example.json +10 -0
- teradataml/data/linreg_example.json +10 -0
- teradataml/data/load_example_data.py +350 -0
- teradataml/data/loan_prediction.csv +295 -0
- teradataml/data/lungcancer.csv +138 -0
- teradataml/data/mappingdata.csv +12 -0
- teradataml/data/medical_readings.csv +101 -0
- teradataml/data/milk_timeseries.csv +157 -0
- teradataml/data/min_max_titanic.csv +4 -0
- teradataml/data/minhash_example.json +6 -0
- teradataml/data/ml_ratings.csv +7547 -0
- teradataml/data/ml_ratings_10.csv +2445 -0
- teradataml/data/mobile_data.csv +13 -0
- teradataml/data/model1_table.csv +5 -0
- teradataml/data/model2_table.csv +5 -0
- teradataml/data/models/License_file.txt +1 -0
- teradataml/data/models/License_file_empty.txt +0 -0
- teradataml/data/models/dataiku_iris_data_ann_thin +0 -0
- teradataml/data/models/dr_iris_rf +0 -0
- teradataml/data/models/iris_db_dt_model_sklearn.onnx +0 -0
- teradataml/data/models/iris_db_dt_model_sklearn_floattensor.onnx +0 -0
- teradataml/data/models/iris_db_glm_model.pmml +57 -0
- teradataml/data/models/iris_db_xgb_model.pmml +4471 -0
- teradataml/data/models/iris_kmeans_model +0 -0
- teradataml/data/models/iris_mojo_glm_h2o_model +0 -0
- teradataml/data/models/iris_mojo_xgb_h2o_model +0 -0
- teradataml/data/modularity_example.json +12 -0
- teradataml/data/movavg_example.json +8 -0
- teradataml/data/mtx1.csv +7 -0
- teradataml/data/mtx2.csv +13 -0
- teradataml/data/multi_model_classification.csv +401 -0
- teradataml/data/multi_model_regression.csv +401 -0
- teradataml/data/mvdfft8.csv +9 -0
- teradataml/data/naivebayes_example.json +10 -0
- teradataml/data/naivebayespredict_example.json +19 -0
- teradataml/data/naivebayestextclassifier2_example.json +7 -0
- teradataml/data/naivebayestextclassifier_example.json +8 -0
- teradataml/data/naivebayestextclassifierpredict_example.json +32 -0
- teradataml/data/name_Find_configure.csv +10 -0
- teradataml/data/namedentityfinder_example.json +14 -0
- teradataml/data/namedentityfinderevaluator_example.json +10 -0
- teradataml/data/namedentityfindertrainer_example.json +6 -0
- teradataml/data/nb_iris_input_test.csv +31 -0
- teradataml/data/nb_iris_input_train.csv +121 -0
- teradataml/data/nbp_iris_model.csv +13 -0
- teradataml/data/ner_dict.csv +8 -0
- teradataml/data/ner_extractor_text.csv +2 -0
- teradataml/data/ner_input_eng.csv +7 -0
- teradataml/data/ner_rule.csv +5 -0
- teradataml/data/ner_sports_test2.csv +29 -0
- teradataml/data/ner_sports_train.csv +501 -0
- teradataml/data/nerevaluator_example.json +6 -0
- teradataml/data/nerextractor_example.json +18 -0
- teradataml/data/nermem_sports_test.csv +18 -0
- teradataml/data/nermem_sports_train.csv +51 -0
- teradataml/data/nertrainer_example.json +7 -0
- teradataml/data/ngrams_example.json +7 -0
- teradataml/data/notebooks/__init__.py +0 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Aggregate Functions using SQLAlchemy.ipynb +1455 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Arithmetic Functions Using SQLAlchemy.ipynb +1993 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Bit-Byte Manipulation Functions using SQLAlchemy.ipynb +1492 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Built-in functions using SQLAlchemy.ipynb +536 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Regular Expressions Using SQLAlchemy.ipynb +570 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage String Functions Using SQLAlchemy.ipynb +2559 -0
- teradataml/data/notebooks/sqlalchemy/Teradata Vantage Window Aggregate Functions using SQLAlchemy.ipynb +2911 -0
- teradataml/data/notebooks/sqlalchemy/Using Generic SQLAlchemy ClauseElements teradataml DataFrame assign method.ipynb +698 -0
- teradataml/data/notebooks/sqlalchemy/__init__.py +0 -0
- teradataml/data/notebooks/sqlalchemy/teradataml filtering using SQLAlchemy ClauseElements.ipynb +784 -0
- teradataml/data/npath_example.json +23 -0
- teradataml/data/ntree_example.json +14 -0
- teradataml/data/numeric_strings.csv +5 -0
- teradataml/data/numerics.csv +4 -0
- teradataml/data/ocean_buoy.csv +17 -0
- teradataml/data/ocean_buoy2.csv +17 -0
- teradataml/data/ocean_buoys.csv +28 -0
- teradataml/data/ocean_buoys2.csv +10 -0
- teradataml/data/ocean_buoys_nonpti.csv +28 -0
- teradataml/data/ocean_buoys_seq.csv +29 -0
- teradataml/data/onehot_encoder_train.csv +4 -0
- teradataml/data/openml_example.json +92 -0
- teradataml/data/optional_event_table.csv +4 -0
- teradataml/data/orders1.csv +11 -0
- teradataml/data/orders1_12.csv +13 -0
- teradataml/data/orders_ex.csv +4 -0
- teradataml/data/pack_example.json +9 -0
- teradataml/data/package_tracking.csv +19 -0
- teradataml/data/package_tracking_pti.csv +19 -0
- teradataml/data/pagerank_example.json +13 -0
- teradataml/data/paragraphs_input.csv +6 -0
- teradataml/data/pathanalyzer_example.json +8 -0
- teradataml/data/pathgenerator_example.json +8 -0
- teradataml/data/patient_profile.csv +101 -0
- teradataml/data/pattern_matching_data.csv +11 -0
- teradataml/data/payment_fraud_dataset.csv +10001 -0
- teradataml/data/peppers.png +0 -0
- teradataml/data/phrases.csv +7 -0
- teradataml/data/pivot_example.json +9 -0
- teradataml/data/pivot_input.csv +22 -0
- teradataml/data/playerRating.csv +31 -0
- teradataml/data/pos_input.csv +40 -0
- teradataml/data/postagger_example.json +7 -0
- teradataml/data/posttagger_output.csv +44 -0
- teradataml/data/production_data.csv +17 -0
- teradataml/data/production_data2.csv +7 -0
- teradataml/data/randomsample_example.json +32 -0
- teradataml/data/randomwalksample_example.json +9 -0
- teradataml/data/rank_table.csv +6 -0
- teradataml/data/real_values.csv +14 -0
- teradataml/data/ref_mobile_data.csv +4 -0
- teradataml/data/ref_mobile_data_dense.csv +2 -0
- teradataml/data/ref_url.csv +17 -0
- teradataml/data/restaurant_reviews.csv +7 -0
- teradataml/data/retail_churn_table.csv +27772 -0
- teradataml/data/river_data.csv +145 -0
- teradataml/data/roc_example.json +8 -0
- teradataml/data/roc_input.csv +101 -0
- teradataml/data/rule_inputs.csv +6 -0
- teradataml/data/rule_table.csv +2 -0
- teradataml/data/sales.csv +7 -0
- teradataml/data/sales_transaction.csv +501 -0
- teradataml/data/salesdata.csv +342 -0
- teradataml/data/sample_cities.csv +3 -0
- teradataml/data/sample_shapes.csv +11 -0
- teradataml/data/sample_streets.csv +3 -0
- teradataml/data/sampling_example.json +16 -0
- teradataml/data/sax_example.json +17 -0
- teradataml/data/scale_attributes.csv +3 -0
- teradataml/data/scale_example.json +74 -0
- teradataml/data/scale_housing.csv +11 -0
- teradataml/data/scale_housing_test.csv +6 -0
- teradataml/data/scale_input_part_sparse.csv +31 -0
- teradataml/data/scale_input_partitioned.csv +16 -0
- teradataml/data/scale_input_sparse.csv +11 -0
- teradataml/data/scale_parameters.csv +3 -0
- teradataml/data/scale_stat.csv +11 -0
- teradataml/data/scalebypartition_example.json +13 -0
- teradataml/data/scalemap_example.json +13 -0
- teradataml/data/scalesummary_example.json +12 -0
- teradataml/data/score_category.csv +101 -0
- teradataml/data/score_summary.csv +4 -0
- teradataml/data/script_example.json +10 -0
- teradataml/data/scripts/deploy_script.py +84 -0
- teradataml/data/scripts/lightgbm/dataset.template +175 -0
- teradataml/data/scripts/lightgbm/lightgbm_class_functions.template +264 -0
- teradataml/data/scripts/lightgbm/lightgbm_function.template +234 -0
- teradataml/data/scripts/lightgbm/lightgbm_sklearn.template +177 -0
- teradataml/data/scripts/mapper.R +20 -0
- teradataml/data/scripts/mapper.py +16 -0
- teradataml/data/scripts/mapper_replace.py +16 -0
- teradataml/data/scripts/sklearn/__init__.py +0 -0
- teradataml/data/scripts/sklearn/sklearn_fit.py +205 -0
- teradataml/data/scripts/sklearn/sklearn_fit_predict.py +148 -0
- teradataml/data/scripts/sklearn/sklearn_function.template +144 -0
- teradataml/data/scripts/sklearn/sklearn_model_selection_split.py +166 -0
- teradataml/data/scripts/sklearn/sklearn_neighbors.py +161 -0
- teradataml/data/scripts/sklearn/sklearn_score.py +145 -0
- teradataml/data/scripts/sklearn/sklearn_transform.py +327 -0
- teradataml/data/sdk/modelops/modelops_spec.json +101737 -0
- teradataml/data/seeds.csv +10 -0
- teradataml/data/sentenceextractor_example.json +7 -0
- teradataml/data/sentiment_extract_input.csv +11 -0
- teradataml/data/sentiment_train.csv +16 -0
- teradataml/data/sentiment_word.csv +20 -0
- teradataml/data/sentiment_word_input.csv +20 -0
- teradataml/data/sentimentextractor_example.json +24 -0
- teradataml/data/sentimenttrainer_example.json +8 -0
- teradataml/data/sequence_table.csv +10 -0
- teradataml/data/seriessplitter_example.json +8 -0
- teradataml/data/sessionize_example.json +17 -0
- teradataml/data/sessionize_table.csv +116 -0
- teradataml/data/setop_test1.csv +24 -0
- teradataml/data/setop_test2.csv +22 -0
- teradataml/data/soc_nw_edges.csv +11 -0
- teradataml/data/soc_nw_vertices.csv +8 -0
- teradataml/data/souvenir_timeseries.csv +168 -0
- teradataml/data/sparse_iris_attribute.csv +5 -0
- teradataml/data/sparse_iris_test.csv +121 -0
- teradataml/data/sparse_iris_train.csv +601 -0
- teradataml/data/star1.csv +6 -0
- teradataml/data/star_pivot.csv +8 -0
- teradataml/data/state_transition.csv +5 -0
- teradataml/data/stock_data.csv +53 -0
- teradataml/data/stock_movement.csv +11 -0
- teradataml/data/stock_vol.csv +76 -0
- teradataml/data/stop_words.csv +8 -0
- teradataml/data/store_sales.csv +37 -0
- teradataml/data/stringsimilarity_example.json +8 -0
- teradataml/data/strsimilarity_input.csv +13 -0
- teradataml/data/students.csv +101 -0
- teradataml/data/svm_iris_input_test.csv +121 -0
- teradataml/data/svm_iris_input_train.csv +481 -0
- teradataml/data/svm_iris_model.csv +7 -0
- teradataml/data/svmdense_example.json +10 -0
- teradataml/data/svmdensepredict_example.json +19 -0
- teradataml/data/svmsparse_example.json +8 -0
- teradataml/data/svmsparsepredict_example.json +14 -0
- teradataml/data/svmsparsesummary_example.json +8 -0
- teradataml/data/target_mobile_data.csv +13 -0
- teradataml/data/target_mobile_data_dense.csv +5 -0
- teradataml/data/target_udt_data.csv +8 -0
- teradataml/data/tdnerextractor_example.json +14 -0
- teradataml/data/templatedata.csv +1201 -0
- teradataml/data/templates/open_source_ml.json +11 -0
- teradataml/data/teradata_icon.ico +0 -0
- teradataml/data/teradataml_example.json +1473 -0
- teradataml/data/test_classification.csv +101 -0
- teradataml/data/test_loan_prediction.csv +53 -0
- teradataml/data/test_pacf_12.csv +37 -0
- teradataml/data/test_prediction.csv +101 -0
- teradataml/data/test_regression.csv +101 -0
- teradataml/data/test_river2.csv +109 -0
- teradataml/data/text_inputs.csv +6 -0
- teradataml/data/textchunker_example.json +8 -0
- teradataml/data/textclassifier_example.json +7 -0
- teradataml/data/textclassifier_input.csv +7 -0
- teradataml/data/textclassifiertrainer_example.json +7 -0
- teradataml/data/textmorph_example.json +11 -0
- teradataml/data/textparser_example.json +15 -0
- teradataml/data/texttagger_example.json +12 -0
- teradataml/data/texttokenizer_example.json +7 -0
- teradataml/data/texttrainer_input.csv +11 -0
- teradataml/data/tf_example.json +7 -0
- teradataml/data/tfidf_example.json +14 -0
- teradataml/data/tfidf_input1.csv +201 -0
- teradataml/data/tfidf_train.csv +6 -0
- teradataml/data/time_table1.csv +535 -0
- teradataml/data/time_table2.csv +14 -0
- teradataml/data/timeseriesdata.csv +1601 -0
- teradataml/data/timeseriesdatasetsd4.csv +105 -0
- teradataml/data/timestamp_data.csv +4 -0
- teradataml/data/titanic.csv +892 -0
- teradataml/data/titanic_dataset_unpivoted.csv +19 -0
- teradataml/data/to_num_data.csv +4 -0
- teradataml/data/tochar_data.csv +5 -0
- teradataml/data/token_table.csv +696 -0
- teradataml/data/train_multiclass.csv +101 -0
- teradataml/data/train_regression.csv +101 -0
- teradataml/data/train_regression_multiple_labels.csv +101 -0
- teradataml/data/train_tracking.csv +28 -0
- teradataml/data/trans_dense.csv +16 -0
- teradataml/data/trans_sparse.csv +55 -0
- teradataml/data/transformation_table.csv +6 -0
- teradataml/data/transformation_table_new.csv +2 -0
- teradataml/data/tv_spots.csv +16 -0
- teradataml/data/twod_climate_data.csv +117 -0
- teradataml/data/uaf_example.json +529 -0
- teradataml/data/univariatestatistics_example.json +9 -0
- teradataml/data/unpack_example.json +10 -0
- teradataml/data/unpivot_example.json +25 -0
- teradataml/data/unpivot_input.csv +8 -0
- teradataml/data/url_data.csv +10 -0
- teradataml/data/us_air_pass.csv +37 -0
- teradataml/data/us_population.csv +624 -0
- teradataml/data/us_states_shapes.csv +52 -0
- teradataml/data/varmax_example.json +18 -0
- teradataml/data/vectordistance_example.json +30 -0
- teradataml/data/ville_climatedata.csv +121 -0
- teradataml/data/ville_tempdata.csv +12 -0
- teradataml/data/ville_tempdata1.csv +12 -0
- teradataml/data/ville_temperature.csv +11 -0
- teradataml/data/waveletTable.csv +1605 -0
- teradataml/data/waveletTable2.csv +1605 -0
- teradataml/data/weightedmovavg_example.json +9 -0
- teradataml/data/wft_testing.csv +5 -0
- teradataml/data/windowdfft.csv +16 -0
- teradataml/data/wine_data.csv +1600 -0
- teradataml/data/word_embed_input_table1.csv +6 -0
- teradataml/data/word_embed_input_table2.csv +5 -0
- teradataml/data/word_embed_model.csv +23 -0
- teradataml/data/words_input.csv +13 -0
- teradataml/data/xconvolve_complex_left.csv +6 -0
- teradataml/data/xconvolve_complex_leftmulti.csv +6 -0
- teradataml/data/xgboost_example.json +36 -0
- teradataml/data/xgboostpredict_example.json +32 -0
- teradataml/data/ztest_example.json +16 -0
- teradataml/dataframe/__init__.py +0 -0
- teradataml/dataframe/copy_to.py +2446 -0
- teradataml/dataframe/data_transfer.py +2840 -0
- teradataml/dataframe/dataframe.py +20908 -0
- teradataml/dataframe/dataframe_utils.py +2114 -0
- teradataml/dataframe/fastload.py +794 -0
- teradataml/dataframe/functions.py +2110 -0
- teradataml/dataframe/indexer.py +424 -0
- teradataml/dataframe/row.py +160 -0
- teradataml/dataframe/setop.py +1171 -0
- teradataml/dataframe/sql.py +10904 -0
- teradataml/dataframe/sql_function_parameters.py +440 -0
- teradataml/dataframe/sql_functions.py +652 -0
- teradataml/dataframe/sql_interfaces.py +220 -0
- teradataml/dataframe/vantage_function_types.py +675 -0
- teradataml/dataframe/window.py +694 -0
- teradataml/dbutils/__init__.py +3 -0
- teradataml/dbutils/dbutils.py +2871 -0
- teradataml/dbutils/filemgr.py +318 -0
- teradataml/gen_ai/__init__.py +2 -0
- teradataml/gen_ai/convAI.py +473 -0
- teradataml/geospatial/__init__.py +4 -0
- teradataml/geospatial/geodataframe.py +1105 -0
- teradataml/geospatial/geodataframecolumn.py +392 -0
- teradataml/geospatial/geometry_types.py +926 -0
- teradataml/hyperparameter_tuner/__init__.py +1 -0
- teradataml/hyperparameter_tuner/optimizer.py +4115 -0
- teradataml/hyperparameter_tuner/utils.py +303 -0
- teradataml/lib/__init__.py +0 -0
- teradataml/lib/aed_0_1.dll +0 -0
- teradataml/lib/libaed_0_1.dylib +0 -0
- teradataml/lib/libaed_0_1.so +0 -0
- teradataml/lib/libaed_0_1_aarch64.so +0 -0
- teradataml/lib/libaed_0_1_ppc64le.so +0 -0
- teradataml/opensource/__init__.py +1 -0
- teradataml/opensource/_base.py +1321 -0
- teradataml/opensource/_class.py +464 -0
- teradataml/opensource/_constants.py +61 -0
- teradataml/opensource/_lightgbm.py +949 -0
- teradataml/opensource/_sklearn.py +1008 -0
- teradataml/opensource/_wrapper_utils.py +267 -0
- teradataml/options/__init__.py +148 -0
- teradataml/options/configure.py +489 -0
- teradataml/options/display.py +187 -0
- teradataml/plot/__init__.py +3 -0
- teradataml/plot/axis.py +1427 -0
- teradataml/plot/constants.py +15 -0
- teradataml/plot/figure.py +431 -0
- teradataml/plot/plot.py +810 -0
- teradataml/plot/query_generator.py +83 -0
- teradataml/plot/subplot.py +216 -0
- teradataml/scriptmgmt/UserEnv.py +4273 -0
- teradataml/scriptmgmt/__init__.py +3 -0
- teradataml/scriptmgmt/lls_utils.py +2157 -0
- teradataml/sdk/README.md +79 -0
- teradataml/sdk/__init__.py +4 -0
- teradataml/sdk/_auth_modes.py +422 -0
- teradataml/sdk/_func_params.py +487 -0
- teradataml/sdk/_json_parser.py +453 -0
- teradataml/sdk/_openapi_spec_constants.py +249 -0
- teradataml/sdk/_utils.py +236 -0
- teradataml/sdk/api_client.py +900 -0
- teradataml/sdk/constants.py +62 -0
- teradataml/sdk/modelops/__init__.py +98 -0
- teradataml/sdk/modelops/_client.py +409 -0
- teradataml/sdk/modelops/_constants.py +304 -0
- teradataml/sdk/modelops/models.py +2308 -0
- teradataml/sdk/spinner.py +107 -0
- teradataml/series/__init__.py +0 -0
- teradataml/series/series.py +537 -0
- teradataml/series/series_utils.py +71 -0
- teradataml/store/__init__.py +12 -0
- teradataml/store/feature_store/__init__.py +0 -0
- teradataml/store/feature_store/constants.py +658 -0
- teradataml/store/feature_store/feature_store.py +4814 -0
- teradataml/store/feature_store/mind_map.py +639 -0
- teradataml/store/feature_store/models.py +7330 -0
- teradataml/store/feature_store/utils.py +390 -0
- teradataml/table_operators/Apply.py +979 -0
- teradataml/table_operators/Script.py +1739 -0
- teradataml/table_operators/TableOperator.py +1343 -0
- teradataml/table_operators/__init__.py +2 -0
- teradataml/table_operators/apply_query_generator.py +262 -0
- teradataml/table_operators/query_generator.py +493 -0
- teradataml/table_operators/table_operator_query_generator.py +462 -0
- teradataml/table_operators/table_operator_util.py +726 -0
- teradataml/table_operators/templates/dataframe_apply.template +184 -0
- teradataml/table_operators/templates/dataframe_map.template +176 -0
- teradataml/table_operators/templates/dataframe_register.template +73 -0
- teradataml/table_operators/templates/dataframe_udf.template +67 -0
- teradataml/table_operators/templates/script_executor.template +170 -0
- teradataml/telemetry_utils/__init__.py +0 -0
- teradataml/telemetry_utils/queryband.py +53 -0
- teradataml/utils/__init__.py +0 -0
- teradataml/utils/docstring.py +527 -0
- teradataml/utils/dtypes.py +943 -0
- teradataml/utils/internal_buffer.py +122 -0
- teradataml/utils/print_versions.py +206 -0
- teradataml/utils/utils.py +451 -0
- teradataml/utils/validators.py +3305 -0
- teradataml-20.0.0.8.dist-info/METADATA +2804 -0
- teradataml-20.0.0.8.dist-info/RECORD +1208 -0
- teradataml-20.0.0.8.dist-info/WHEEL +5 -0
- teradataml-20.0.0.8.dist-info/top_level.txt +1 -0
- teradataml-20.0.0.8.dist-info/zip-safe +1 -0
|
@@ -0,0 +1,1343 @@
|
|
|
1
|
+
#!/usr/bin/python
|
|
2
|
+
# ##################################################################
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2020 Teradata. All rights reserved.
|
|
5
|
+
# TERADATA CONFIDENTIAL AND TRADE SECRET
|
|
6
|
+
#
|
|
7
|
+
# Primary Owner: Trupti Purohit (trupti.purohit@teradata.com)
|
|
8
|
+
# Secondary Owner: Gouri Patwardhan (gouri.patwardhan@teradata.com)
|
|
9
|
+
#
|
|
10
|
+
# Function Version: 1.0
|
|
11
|
+
#
|
|
12
|
+
# Description: Base class for Teradata's Table Operators
|
|
13
|
+
# ##################################################################
|
|
14
|
+
|
|
15
|
+
import os
|
|
16
|
+
import time
|
|
17
|
+
import uuid
|
|
18
|
+
from math import floor
|
|
19
|
+
import warnings
|
|
20
|
+
import subprocess
|
|
21
|
+
from pathlib import Path
|
|
22
|
+
import teradataml.dataframe as tdmldf
|
|
23
|
+
from teradataml.common.constants import OutputStyle, TeradataConstants
|
|
24
|
+
from teradataml.common.constants import TableOperatorConstants
|
|
25
|
+
from teradataml.common.garbagecollector import GarbageCollector
|
|
26
|
+
from teradataml.common.wrapper_utils import AnalyticsWrapperUtils
|
|
27
|
+
from teradataml.common.utils import UtilFuncs
|
|
28
|
+
from teradataml.dataframe.dataframe_utils import DataFrameUtils as df_utils
|
|
29
|
+
|
|
30
|
+
from teradataml.common.exceptions import TeradataMlException
|
|
31
|
+
from teradataml.common.messages import Messages
|
|
32
|
+
from teradataml.common.messagecodes import MessageCodes
|
|
33
|
+
from teradataml.options.configure import configure
|
|
34
|
+
from teradataml.utils.utils import execute_sql
|
|
35
|
+
from teradataml.utils.validators import _Validators
|
|
36
|
+
from teradatasqlalchemy import (BYTEINT, SMALLINT, INTEGER, BIGINT, DECIMAL, FLOAT, NUMBER)
|
|
37
|
+
from teradatasqlalchemy import (TIMESTAMP, DATE, TIME)
|
|
38
|
+
from teradatasqlalchemy import (CHAR, VARCHAR, CLOB)
|
|
39
|
+
from teradatasqlalchemy import (BYTE, VARBYTE, BLOB)
|
|
40
|
+
from teradatasqlalchemy import (PERIOD_DATE, PERIOD_TIME, PERIOD_TIMESTAMP)
|
|
41
|
+
from teradatasqlalchemy import (INTERVAL_YEAR, INTERVAL_YEAR_TO_MONTH, INTERVAL_MONTH, INTERVAL_DAY,
|
|
42
|
+
INTERVAL_DAY_TO_HOUR, INTERVAL_DAY_TO_MINUTE, INTERVAL_DAY_TO_SECOND,
|
|
43
|
+
INTERVAL_HOUR, INTERVAL_HOUR_TO_MINUTE, INTERVAL_HOUR_TO_SECOND,
|
|
44
|
+
INTERVAL_MINUTE, INTERVAL_MINUTE_TO_SECOND, INTERVAL_SECOND)
|
|
45
|
+
from teradataml.context.context import _get_current_databasename, get_context, get_connection
|
|
46
|
+
from io import StringIO
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class TableOperator:
|
|
50
|
+
|
|
51
|
+
def __init__(self,
|
|
52
|
+
data=None,
|
|
53
|
+
script_name=None,
|
|
54
|
+
files_local_path=None,
|
|
55
|
+
delimiter="\t",
|
|
56
|
+
returns=None,
|
|
57
|
+
quotechar=None,
|
|
58
|
+
data_partition_column=None,
|
|
59
|
+
data_hash_column=None,
|
|
60
|
+
data_order_column=None,
|
|
61
|
+
is_local_order=False,
|
|
62
|
+
sort_ascending=True,
|
|
63
|
+
nulls_first=True):
|
|
64
|
+
"""
|
|
65
|
+
DESCRIPTION:
|
|
66
|
+
Table Operators are a type of User-Defined Function, only available when connected to a
|
|
67
|
+
Vantage.
|
|
68
|
+
|
|
69
|
+
PARAMETERS:
|
|
70
|
+
data:
|
|
71
|
+
Optional Argument.
|
|
72
|
+
Specifies a teradataml DataFrame containing the input data for the script.
|
|
73
|
+
|
|
74
|
+
script_name:
|
|
75
|
+
Required Argument.
|
|
76
|
+
Specifies the name of the user script.
|
|
77
|
+
Types: str
|
|
78
|
+
|
|
79
|
+
files_local_path:
|
|
80
|
+
Required Argument.
|
|
81
|
+
Specifies the absolute local path where the user script and all supporting files
|
|
82
|
+
like model files, input data file reside.
|
|
83
|
+
Types: str
|
|
84
|
+
|
|
85
|
+
delimiter:
|
|
86
|
+
Optional Argument.
|
|
87
|
+
Specifies a delimiter to use when reading columns from a row and
|
|
88
|
+
writing result columns.
|
|
89
|
+
The delimiter is a single character chosen from the set of punctuation characters.
|
|
90
|
+
Types: str
|
|
91
|
+
|
|
92
|
+
returns:
|
|
93
|
+
Required Argument.
|
|
94
|
+
Specifies the output column definition.
|
|
95
|
+
Types: Dictionary specifying column name to teradatasqlalchemy type mapping.
|
|
96
|
+
Default: None
|
|
97
|
+
|
|
98
|
+
data_hash_column:
|
|
99
|
+
Optional Argument.
|
|
100
|
+
Specifies the column to be used for hashing.
|
|
101
|
+
The rows in the data are redistributed to AMPs based on the hash value of the
|
|
102
|
+
column specified. The user-installed script file then runs once on each AMP.
|
|
103
|
+
If there is no data_hash_column, then the entire result set,
|
|
104
|
+
delivered by the function, constitutes a single group or partition.
|
|
105
|
+
Types: str
|
|
106
|
+
Note:
|
|
107
|
+
"data_hash_column" can not be specified along with "data_partition_column",
|
|
108
|
+
"is_local_order" and "data_order_column".
|
|
109
|
+
|
|
110
|
+
data_partition_column:
|
|
111
|
+
Optional Argument.
|
|
112
|
+
Specifies Partition By columns for data.
|
|
113
|
+
Values to this argument can be provided as a list, if multiple
|
|
114
|
+
columns are used for partition.
|
|
115
|
+
Default Value: ANY
|
|
116
|
+
Types: str OR list of Strings (str)
|
|
117
|
+
Notes:
|
|
118
|
+
1) "data_partition_column" can not be specified along with "data_hash_column".
|
|
119
|
+
2) "data_partition_column" can not be specified along with "is_local_order = True".
|
|
120
|
+
|
|
121
|
+
is_local_order:
|
|
122
|
+
Optional Argument.
|
|
123
|
+
Specifies a boolean value to determine whether the input data is to be ordered locally
|
|
124
|
+
or not. 'sort_ascending' specifies the order in which the values in a group, or partition,
|
|
125
|
+
are sorted. This argument is ignored, if data_order_column is None.
|
|
126
|
+
When set to 'True', qualified rows are ordered locally in preparation to be input
|
|
127
|
+
to the function.
|
|
128
|
+
Default Value: False
|
|
129
|
+
Types: bool
|
|
130
|
+
Note:
|
|
131
|
+
"is_local_order" can not be specified along with "data_hash_column".
|
|
132
|
+
When "is_local_order" is set to 'True', "data_order_column" should be specified,
|
|
133
|
+
and the columns specified in "data_order_column" are used for local ordering.
|
|
134
|
+
|
|
135
|
+
data_order_column:
|
|
136
|
+
Optional Argument.
|
|
137
|
+
Specifies Order By columns for data.
|
|
138
|
+
Values to this argument can be provided as a list, if multiple
|
|
139
|
+
columns are used for ordering.
|
|
140
|
+
This argument is used with in both cases: "is_local_order = True"
|
|
141
|
+
and "is_local_order = False".
|
|
142
|
+
Types: str OR list of Strings (str)
|
|
143
|
+
Note:
|
|
144
|
+
"data_order_column" can not be specified along with "data_hash_column".
|
|
145
|
+
|
|
146
|
+
sort_ascending:
|
|
147
|
+
Optional Argument.
|
|
148
|
+
Specifies a boolean value to determine if the input data is to be sorted on
|
|
149
|
+
the data_order_column column in ascending or descending order.
|
|
150
|
+
When this is set to 'True' data is sorted in ascending order,
|
|
151
|
+
otherwise data is sorted in descending order.
|
|
152
|
+
This argument is ignored, if data_order_column is None.
|
|
153
|
+
Default Value: True
|
|
154
|
+
Types: bool
|
|
155
|
+
|
|
156
|
+
nulls_first:
|
|
157
|
+
Optional Argument.
|
|
158
|
+
Specifies a boolean value to determine whether NULLS from input data are listed
|
|
159
|
+
first or last during ordering.
|
|
160
|
+
When this is set to 'True' NULLS are listed first, otherwise NULLS are listed last.
|
|
161
|
+
This argument is ignored, if data_order_column is None.
|
|
162
|
+
Default Value: True
|
|
163
|
+
Types: bool
|
|
164
|
+
|
|
165
|
+
RETURNS:
|
|
166
|
+
An instance of TableOperator class.
|
|
167
|
+
|
|
168
|
+
RAISES:
|
|
169
|
+
TeradataMlException
|
|
170
|
+
|
|
171
|
+
EXAMPLES:
|
|
172
|
+
# Apply class extends this base class.
|
|
173
|
+
apply_obj = Apply(data=barrierdf,
|
|
174
|
+
script_name='mapper.py',
|
|
175
|
+
files_local_path= '/root/data/scripts/',
|
|
176
|
+
apply_command='python3 mapper.py',
|
|
177
|
+
data_order_column="Id",
|
|
178
|
+
is_local_order=False,
|
|
179
|
+
nulls_first=False,
|
|
180
|
+
sort_ascending=False,
|
|
181
|
+
env_name = "test_env",
|
|
182
|
+
returns={"word": VARCHAR(15), "count_input": VARCHAR(2)},
|
|
183
|
+
style='csv',
|
|
184
|
+
delimiter=',')
|
|
185
|
+
"""
|
|
186
|
+
self.result = None
|
|
187
|
+
self._tblop_query = None
|
|
188
|
+
self.data = data
|
|
189
|
+
self.script_name = script_name
|
|
190
|
+
self.files_local_path = files_local_path
|
|
191
|
+
self.delimiter = delimiter
|
|
192
|
+
self.quotechar = quotechar
|
|
193
|
+
self.returns = returns
|
|
194
|
+
self.data_partition_column = data_partition_column
|
|
195
|
+
self.data_hash_column = data_hash_column
|
|
196
|
+
self.data_order_column = data_order_column
|
|
197
|
+
self.is_local_order = is_local_order
|
|
198
|
+
self.sort_ascending = sort_ascending
|
|
199
|
+
self.nulls_first = nulls_first
|
|
200
|
+
|
|
201
|
+
# Datatypes supported in returns clause of a table operator.
|
|
202
|
+
self._supported_returns_datatypes = (BYTEINT, SMALLINT, INTEGER, BIGINT, DECIMAL, FLOAT, NUMBER,
|
|
203
|
+
TIMESTAMP, DATE, TIME, CHAR, VARCHAR, CLOB, BYTE, VARBYTE,
|
|
204
|
+
BLOB, PERIOD_DATE, PERIOD_TIME, PERIOD_TIMESTAMP, INTERVAL_YEAR,
|
|
205
|
+
INTERVAL_YEAR_TO_MONTH, INTERVAL_MONTH, INTERVAL_DAY, INTERVAL_DAY_TO_HOUR,
|
|
206
|
+
INTERVAL_DAY_TO_MINUTE, INTERVAL_DAY_TO_SECOND, INTERVAL_HOUR,
|
|
207
|
+
INTERVAL_HOUR_TO_MINUTE, INTERVAL_HOUR_TO_SECOND, INTERVAL_MINUTE,
|
|
208
|
+
INTERVAL_MINUTE_TO_SECOND, INTERVAL_SECOND
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
# Create AnalyticsWrapperUtils instance which contains validation functions.
|
|
212
|
+
# This is required for is_default_or_not check.
|
|
213
|
+
# Rest all validation is done using _Validators.
|
|
214
|
+
self.__awu = AnalyticsWrapperUtils()
|
|
215
|
+
|
|
216
|
+
self.awu_matrix = []
|
|
217
|
+
self.awu_matrix.append(["data", self.data, True, (tdmldf.dataframe.DataFrame)])
|
|
218
|
+
self.awu_matrix.append(["data_partition_column", self.data_partition_column, True, (str, list), True])
|
|
219
|
+
self.awu_matrix.append(["data_hash_column", self.data_hash_column, True, (str, list), True])
|
|
220
|
+
self.awu_matrix.append(["data_order_column", self.data_order_column, True, (str, list), True])
|
|
221
|
+
self.awu_matrix.append(["is_local_order", self.is_local_order, True, (bool)])
|
|
222
|
+
self.awu_matrix.append(["sort_ascending", self.sort_ascending, True, (bool)])
|
|
223
|
+
self.awu_matrix.append(["nulls_first", self.nulls_first, True, (bool)])
|
|
224
|
+
self.awu_matrix.append(["script_name", self.script_name, True, (str), True])
|
|
225
|
+
self.awu_matrix.append(["files_local_path", self.files_local_path, True, (str), True])
|
|
226
|
+
self.awu_matrix.append(["delimiter", self.delimiter, True, (str), False])
|
|
227
|
+
self.awu_matrix.append(["quotechar", self.quotechar, True, (str), False])
|
|
228
|
+
|
|
229
|
+
# Perform the function validations.
|
|
230
|
+
self._validate()
|
|
231
|
+
|
|
232
|
+
def _validate(self, for_data_args=False):
|
|
233
|
+
"""
|
|
234
|
+
Function to validate Table Operator Function arguments, which verifies missing
|
|
235
|
+
arguments, input argument and table types. Also processes the
|
|
236
|
+
argument values.
|
|
237
|
+
@param: for_data_args: Specifies whether the validation is for only arguments related to data or not.
|
|
238
|
+
When set to True, validation is only for data arguments. Otherwise, validation
|
|
239
|
+
is for all arguments. By default, system validates all the arguments.
|
|
240
|
+
"""
|
|
241
|
+
|
|
242
|
+
if not for_data_args:
|
|
243
|
+
# Make sure that a non-NULL value has been supplied for all mandatory arguments
|
|
244
|
+
_Validators._validate_missing_required_arguments(self.awu_matrix)
|
|
245
|
+
|
|
246
|
+
# Validate argument types
|
|
247
|
+
_Validators._validate_function_arguments(self.awu_matrix,
|
|
248
|
+
skip_empty_check={"quotechar": ["\n", "\t"],
|
|
249
|
+
"delimiter": ["\n"]})
|
|
250
|
+
|
|
251
|
+
if self.data is not None:
|
|
252
|
+
# Hash and order by can be used together as long as is_local_order = True.
|
|
253
|
+
if all([self.data_hash_column,
|
|
254
|
+
self.data_order_column]) and not self.is_local_order:
|
|
255
|
+
raise TeradataMlException(
|
|
256
|
+
Messages.get_message(MessageCodes.CANNOT_USE_TOGETHER_WITH,
|
|
257
|
+
"data_hash_column' and 'data_order_column",
|
|
258
|
+
"is_local_order=False"),
|
|
259
|
+
MessageCodes.CANNOT_USE_TOGETHER_WITH)
|
|
260
|
+
|
|
261
|
+
# Either hash or partition can be used.
|
|
262
|
+
if all([self.data_hash_column, self.data_partition_column]):
|
|
263
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT,
|
|
264
|
+
"data_hash_column", "data_partition_column"),
|
|
265
|
+
MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT)
|
|
266
|
+
|
|
267
|
+
# Either local order by or partition by can be used.
|
|
268
|
+
if all([self.is_local_order, self.data_partition_column]):
|
|
269
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT,
|
|
270
|
+
"is_local_order=True",
|
|
271
|
+
"data_partition_column"),
|
|
272
|
+
MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT)
|
|
273
|
+
|
|
274
|
+
# local order by requires column name.
|
|
275
|
+
if self.is_local_order and self.data_order_column is None:
|
|
276
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING,
|
|
277
|
+
"data_order_column",
|
|
278
|
+
"is_local_order=True"),
|
|
279
|
+
MessageCodes.DEPENDENT_ARG_MISSING)
|
|
280
|
+
|
|
281
|
+
if self.__awu._is_default_or_not(self.data_partition_column, "ANY"):
|
|
282
|
+
_Validators._validate_dataframe_has_argument_columns(self.data_partition_column, "data_partition_column",
|
|
283
|
+
self.data, "data", True)
|
|
284
|
+
|
|
285
|
+
_Validators._validate_dataframe_has_argument_columns(self.data_order_column, "data_order_column",
|
|
286
|
+
self.data, "data", False)
|
|
287
|
+
|
|
288
|
+
_Validators._validate_dataframe_has_argument_columns(self.data_hash_column, "data_hash_column",
|
|
289
|
+
self.data, "data", False)
|
|
290
|
+
|
|
291
|
+
if not for_data_args:
|
|
292
|
+
# Check for length of the arguments "delimiter" and "quotechar".
|
|
293
|
+
if self.delimiter is not None:
|
|
294
|
+
_Validators._validate_str_arg_length('delimiter', self.delimiter, 'EQ', 1)
|
|
295
|
+
|
|
296
|
+
if self.quotechar is not None:
|
|
297
|
+
_Validators._validate_str_arg_length('quotechar', self.quotechar, 'EQ', 1)
|
|
298
|
+
|
|
299
|
+
# The arguments 'quotechar' and 'delimiter' cannot take newline character.
|
|
300
|
+
if self.delimiter == '\n':
|
|
301
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.NOT_ALLOWED_VALUES,
|
|
302
|
+
"\n", "delimiter"),
|
|
303
|
+
MessageCodes.NOT_ALLOWED_VALUES)
|
|
304
|
+
if self.quotechar == '\n':
|
|
305
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.NOT_ALLOWED_VALUES,
|
|
306
|
+
"\n", "quotechar"),
|
|
307
|
+
MessageCodes.NOT_ALLOWED_VALUES)
|
|
308
|
+
|
|
309
|
+
# The arguments 'quotechar' and 'delimiter' cannot have the same value.
|
|
310
|
+
if self.delimiter == self.quotechar:
|
|
311
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.ARGUMENT_VALUE_SAME,
|
|
312
|
+
"delimiter", "quotechar"),
|
|
313
|
+
MessageCodes.ARGUMENT_VALUE_SAME)
|
|
314
|
+
|
|
315
|
+
def set_data(self,
|
|
316
|
+
data,
|
|
317
|
+
data_partition_column=None,
|
|
318
|
+
data_hash_column=None,
|
|
319
|
+
data_order_column=None,
|
|
320
|
+
is_local_order=False,
|
|
321
|
+
sort_ascending=True,
|
|
322
|
+
nulls_first=True):
|
|
323
|
+
"""
|
|
324
|
+
DESCRIPTION:
|
|
325
|
+
Function enables user to set data and data related arguments without having to
|
|
326
|
+
re-create Script object.
|
|
327
|
+
|
|
328
|
+
PARAMETERS:
|
|
329
|
+
data:
|
|
330
|
+
Required Argument.
|
|
331
|
+
Specifies a teradataml DataFrame containing the input data for the script.
|
|
332
|
+
|
|
333
|
+
data_hash_column:
|
|
334
|
+
Optional Argument.
|
|
335
|
+
Specifies the column to be used for hashing.
|
|
336
|
+
The rows in the data are redistributed to AMPs based on the
|
|
337
|
+
hash value of the column specified.
|
|
338
|
+
The user installed script then runs once on each AMP.
|
|
339
|
+
If there is no data_partition_column, then the entire result set delivered
|
|
340
|
+
by the function, constitutes a single group or partition.
|
|
341
|
+
Types: str
|
|
342
|
+
Note:
|
|
343
|
+
"data_hash_column" can not be specified along with
|
|
344
|
+
"data_partition_column", "is_local_order" and "data_order_column".
|
|
345
|
+
|
|
346
|
+
data_partition_column:
|
|
347
|
+
Optional Argument.
|
|
348
|
+
Specifies Partition By columns for data.
|
|
349
|
+
Values to this argument can be provided as a list, if multiple
|
|
350
|
+
columns are used for partition.
|
|
351
|
+
Default Value: ANY
|
|
352
|
+
Types: str OR list of Strings (str)
|
|
353
|
+
Note:
|
|
354
|
+
1) "data_partition_column" can not be specified along with
|
|
355
|
+
"data_hash_column".
|
|
356
|
+
2) "data_partition_column" can not be specified along with
|
|
357
|
+
"is_local_order = True".
|
|
358
|
+
|
|
359
|
+
is_local_order:
|
|
360
|
+
Optional Argument.
|
|
361
|
+
Specifies a boolean value to determine whether the input data is to be
|
|
362
|
+
ordered locally or not. Order by specifies the order in which the
|
|
363
|
+
values in a group or partition are sorted. Local Order By specifies
|
|
364
|
+
orders qualified rows on each AMP in preparation to be input to a table
|
|
365
|
+
function. This argument is ignored, if "data_order_column" is None. When
|
|
366
|
+
set to True, data is ordered locally.
|
|
367
|
+
Default Value: False
|
|
368
|
+
Types: bool
|
|
369
|
+
Note:
|
|
370
|
+
1) "is_local_order" can not be specified along with
|
|
371
|
+
"data_hash_column".
|
|
372
|
+
2) When "is_local_order" is set to True, "data_order_column" should be
|
|
373
|
+
specified, and the columns specified in "data_order_column" are
|
|
374
|
+
used for local ordering.
|
|
375
|
+
|
|
376
|
+
data_order_column:
|
|
377
|
+
Optional Argument.
|
|
378
|
+
Specifies Order By columns for data.
|
|
379
|
+
Values to this argument can be provided as a list, if multiple
|
|
380
|
+
columns are used for ordering.
|
|
381
|
+
This argument is used in both cases:
|
|
382
|
+
"is_local_order = True" and "is_local_order = False".
|
|
383
|
+
Types: str OR list of Strings (str)
|
|
384
|
+
Note:
|
|
385
|
+
"data_order_column" can not be specified along with
|
|
386
|
+
"data_hash_column".
|
|
387
|
+
|
|
388
|
+
sort_ascending:
|
|
389
|
+
Optional Argument.
|
|
390
|
+
Specifies a boolean value to determine if the result set is to be sorted
|
|
391
|
+
on the column specified in "data_order_column", in ascending or descending
|
|
392
|
+
order.
|
|
393
|
+
The sorting is ascending when this argument is set to True, and descending
|
|
394
|
+
when set to False.
|
|
395
|
+
This argument is ignored, if "data_order_column" is None.
|
|
396
|
+
Default Value: True
|
|
397
|
+
Types: bool
|
|
398
|
+
|
|
399
|
+
nulls_first:
|
|
400
|
+
Optional Argument.
|
|
401
|
+
Specifies a boolean value to determine whether NULLS are listed first or
|
|
402
|
+
last during ordering.
|
|
403
|
+
This argument is ignored, if "data_order_column" is None.
|
|
404
|
+
NULLS are listed first when this argument is set to True, and
|
|
405
|
+
last when set to False.
|
|
406
|
+
Default Value: True
|
|
407
|
+
Types: bool
|
|
408
|
+
|
|
409
|
+
RETURNS:
|
|
410
|
+
None.
|
|
411
|
+
|
|
412
|
+
RAISES:
|
|
413
|
+
TeradataMlException
|
|
414
|
+
|
|
415
|
+
EXAMPLES:
|
|
416
|
+
>>> self.set_data(df)
|
|
417
|
+
"""
|
|
418
|
+
|
|
419
|
+
awu_matrix_setter = []
|
|
420
|
+
awu_matrix_setter.append(["data", data, True, (tdmldf.dataframe.DataFrame)])
|
|
421
|
+
awu_matrix_setter.append(["data_partition_column", data_partition_column,
|
|
422
|
+
True, (str, list), True])
|
|
423
|
+
awu_matrix_setter.append(["data_hash_column", data_hash_column, True,
|
|
424
|
+
(str, list), True])
|
|
425
|
+
awu_matrix_setter.append(["data_order_column", data_order_column, True,
|
|
426
|
+
(str, list), True])
|
|
427
|
+
awu_matrix_setter.append(["is_local_order", is_local_order, True, (bool)])
|
|
428
|
+
awu_matrix_setter.append(["sort_ascending", sort_ascending, True, (bool)])
|
|
429
|
+
awu_matrix_setter.append(["nulls_first", nulls_first, True, (bool)])
|
|
430
|
+
|
|
431
|
+
# Perform the function validations
|
|
432
|
+
_Validators._validate_missing_required_arguments([["data", data, False,
|
|
433
|
+
(tdmldf.dataframe.DataFrame)]])
|
|
434
|
+
_Validators._validate_function_arguments(awu_matrix_setter)
|
|
435
|
+
|
|
436
|
+
self.data = data
|
|
437
|
+
self.data_partition_column = data_partition_column
|
|
438
|
+
self.data_hash_column = data_hash_column
|
|
439
|
+
self.data_order_column = data_order_column
|
|
440
|
+
self.is_local_order = is_local_order
|
|
441
|
+
self.sort_ascending = sort_ascending
|
|
442
|
+
self.nulls_first = nulls_first
|
|
443
|
+
|
|
444
|
+
def _execute(self, output_style='VIEW'):
|
|
445
|
+
"""
|
|
446
|
+
Function to execute Table Operator queries.
|
|
447
|
+
Create DataFrames for the required Table Operator output.
|
|
448
|
+
"""
|
|
449
|
+
table_type = TeradataConstants.TERADATA_VIEW
|
|
450
|
+
if output_style == OutputStyle.OUTPUT_TABLE.value:
|
|
451
|
+
table_type = TeradataConstants.TERADATA_TABLE
|
|
452
|
+
|
|
453
|
+
# Generate STDOUT table name and add it to the output table list.
|
|
454
|
+
tblop_stdout_temp_tablename = UtilFuncs._generate_temp_table_name(prefix="td_tblop_out_",
|
|
455
|
+
use_default_database=True, gc_on_quit=True,
|
|
456
|
+
quote=False,
|
|
457
|
+
table_type=table_type
|
|
458
|
+
)
|
|
459
|
+
|
|
460
|
+
try:
|
|
461
|
+
if configure.temp_object_type == TeradataConstants.TERADATA_VOLATILE_TABLE:
|
|
462
|
+
UtilFuncs._create_table(tblop_stdout_temp_tablename, self._tblop_query, volatile=True)
|
|
463
|
+
elif output_style == OutputStyle.OUTPUT_TABLE.value:
|
|
464
|
+
UtilFuncs._create_table(tblop_stdout_temp_tablename, self._tblop_query)
|
|
465
|
+
else:
|
|
466
|
+
UtilFuncs._create_view(tblop_stdout_temp_tablename, self._tblop_query)
|
|
467
|
+
except Exception as emsg:
|
|
468
|
+
raise TeradataMlException(Messages.get_message(MessageCodes.TDMLDF_EXEC_SQL_FAILED, str(emsg)),
|
|
469
|
+
MessageCodes.TDMLDF_EXEC_SQL_FAILED)
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
self.result = self.__awu._create_data_set_object(
|
|
473
|
+
df_input=UtilFuncs._extract_table_name(tblop_stdout_temp_tablename), source_type="table",
|
|
474
|
+
database_name=UtilFuncs._extract_db_name(tblop_stdout_temp_tablename))
|
|
475
|
+
|
|
476
|
+
return self.result
|
|
477
|
+
|
|
478
|
+
def _returns_clause_validation(self):
|
|
479
|
+
"""
|
|
480
|
+
DESCRIPTION:
|
|
481
|
+
Function validates 'returns' clause for a table operator query.
|
|
482
|
+
|
|
483
|
+
PARAMETERS:
|
|
484
|
+
None.
|
|
485
|
+
|
|
486
|
+
RETURNS:
|
|
487
|
+
None
|
|
488
|
+
|
|
489
|
+
RAISES:
|
|
490
|
+
Error if argument is not of valid datatype.
|
|
491
|
+
|
|
492
|
+
EXAMPLES:
|
|
493
|
+
self._returns_clause_validation()
|
|
494
|
+
"""
|
|
495
|
+
# Validate keys and datatypes in returns.
|
|
496
|
+
if self.returns is not None:
|
|
497
|
+
awu_matrix_returns = []
|
|
498
|
+
for key in self.returns.keys():
|
|
499
|
+
awu_matrix_returns.append(["keys in returns", key, False, (str), True])
|
|
500
|
+
awu_matrix_returns.append(["values in returns", self.returns[key], False, self._supported_returns_datatypes])
|
|
501
|
+
_Validators._validate_function_arguments(awu_matrix_returns)
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
def test_script(self, supporting_files=None, input_data_file=None, script_args="",
|
|
505
|
+
exec_mode='local', **kwargs):
|
|
506
|
+
"""
|
|
507
|
+
DESCRIPTION:
|
|
508
|
+
Function enables user to run script in docker container environment outside
|
|
509
|
+
Vantage.
|
|
510
|
+
Input data for user script is read from file.
|
|
511
|
+
|
|
512
|
+
PARAMETERS:
|
|
513
|
+
supporting_files:
|
|
514
|
+
Optional Argument
|
|
515
|
+
Specifies a file or list of supporting files like model files to be
|
|
516
|
+
copied to the container.
|
|
517
|
+
Types: string or list of str
|
|
518
|
+
|
|
519
|
+
input_data_file:
|
|
520
|
+
Required Argument.
|
|
521
|
+
Specifies the name of the input data file.
|
|
522
|
+
It should have a path relative to the location specified in
|
|
523
|
+
"files_local_path" argument.
|
|
524
|
+
If set to None, read data from AMP, else from file passed in the argument
|
|
525
|
+
'input_data_file'.
|
|
526
|
+
File should have at least permissions of mode 644.
|
|
527
|
+
Types: str
|
|
528
|
+
|
|
529
|
+
script_args:
|
|
530
|
+
Optional Argument.
|
|
531
|
+
Specifies command line arguments required by the user script.
|
|
532
|
+
Types: str
|
|
533
|
+
|
|
534
|
+
exec_mode:
|
|
535
|
+
Optional Argument.
|
|
536
|
+
Specifies the mode in which user wants to test the script.
|
|
537
|
+
If set to 'local', the user script will run locally on user's system.
|
|
538
|
+
Permitted Values: 'local'
|
|
539
|
+
Default Value: 'local'
|
|
540
|
+
Types: str
|
|
541
|
+
|
|
542
|
+
kwargs:
|
|
543
|
+
Optional Argument.
|
|
544
|
+
Specifies the keyword arguments required for testing.
|
|
545
|
+
Keys can be:
|
|
546
|
+
data_row_limit:
|
|
547
|
+
Optional Argument. Ignored when data is read from file.
|
|
548
|
+
Specifies the number of rows to be taken from all amps when
|
|
549
|
+
reading from a table or view on Vantage.
|
|
550
|
+
Default Value: 1000
|
|
551
|
+
Types: int
|
|
552
|
+
|
|
553
|
+
password:
|
|
554
|
+
Optional Argument. Required when reading from database.
|
|
555
|
+
Specifies the password to connect to vantage where the data
|
|
556
|
+
resides.
|
|
557
|
+
Types: str
|
|
558
|
+
|
|
559
|
+
data_file_delimiter:
|
|
560
|
+
Optional Argument.
|
|
561
|
+
Specifies the delimiter used in the input data file. This
|
|
562
|
+
argument can be specified when data is read from file.
|
|
563
|
+
Default Value: '\t'
|
|
564
|
+
Types: str
|
|
565
|
+
|
|
566
|
+
data_file_header:
|
|
567
|
+
Optional Argument.
|
|
568
|
+
Specifies whether the input data file contains header. This
|
|
569
|
+
argument can be specified when data is read from file.
|
|
570
|
+
Default Value: True
|
|
571
|
+
Types: bool
|
|
572
|
+
|
|
573
|
+
data_file_quote_char:
|
|
574
|
+
Optional Argument.
|
|
575
|
+
Specifies the quotechar used in the input data file.
|
|
576
|
+
This argument can be specified when data is read from file.
|
|
577
|
+
Default Value: '"'
|
|
578
|
+
|
|
579
|
+
logmech:
|
|
580
|
+
Optional Argument.
|
|
581
|
+
Specifies the type of logon mechanism to establish a connection to
|
|
582
|
+
Teradata Vantage.
|
|
583
|
+
Permitted Values: 'TD2', 'TDNEGO', 'LDAP', 'KRB5' & 'JWT'.
|
|
584
|
+
TD2:
|
|
585
|
+
The Teradata 2 (TD2) mechanism provides authentication
|
|
586
|
+
using a Vantage username and password. This is the default
|
|
587
|
+
logon mechanism using which the connection is established
|
|
588
|
+
to Vantage.
|
|
589
|
+
|
|
590
|
+
TDNEGO:
|
|
591
|
+
A security mechanism that automatically determines the
|
|
592
|
+
actual mechanism required, based on policy, without user's
|
|
593
|
+
involvement. The actual mechanism is determined by the
|
|
594
|
+
TDGSS server configuration and by the security policy's
|
|
595
|
+
mechanism restrictions.
|
|
596
|
+
|
|
597
|
+
LDAP:
|
|
598
|
+
A directory-based user logon to Vantage with a directory
|
|
599
|
+
username and password and is authenticated by the directory.
|
|
600
|
+
|
|
601
|
+
KRB5 (Kerberos):
|
|
602
|
+
A directory-based user logon to Vantage with a domain
|
|
603
|
+
username and password and is authenticated by
|
|
604
|
+
Kerberos (KRB5 mechanism).
|
|
605
|
+
Note:
|
|
606
|
+
User must have a valid ticket-granting ticket in
|
|
607
|
+
order to use this logon mechanism.
|
|
608
|
+
|
|
609
|
+
JWT:
|
|
610
|
+
The JSON Web Token (JWT) authentication mechanism enables
|
|
611
|
+
single sign-on (SSO) to the Vantage after the user
|
|
612
|
+
successfully authenticates to Teradata UDA User Service.
|
|
613
|
+
Note:
|
|
614
|
+
User must use logdata parameter when using 'JWT' as
|
|
615
|
+
the logon mechanism.
|
|
616
|
+
Default Value: TD2
|
|
617
|
+
Types: str
|
|
618
|
+
|
|
619
|
+
Note:
|
|
620
|
+
teradataml expects the client environments are already setup with appropriate
|
|
621
|
+
security mechanisms and are in working conditions.
|
|
622
|
+
For more information please refer Teradata Vantage™ - Advanced SQL Engine
|
|
623
|
+
Security Administration at https://www.info.teradata.com/
|
|
624
|
+
|
|
625
|
+
logdata:
|
|
626
|
+
Optional Argument.
|
|
627
|
+
Specifies parameters to the LOGMECH command beyond those needed by
|
|
628
|
+
the logon mechanism, such as user ID, password and tokens
|
|
629
|
+
(in case of JWT) to successfully authenticate the user.
|
|
630
|
+
Types: str
|
|
631
|
+
|
|
632
|
+
Types: dict
|
|
633
|
+
|
|
634
|
+
RETURNS:
|
|
635
|
+
Output from user script.
|
|
636
|
+
|
|
637
|
+
RAISES:
|
|
638
|
+
TeradataMlException
|
|
639
|
+
|
|
640
|
+
EXAMPLES:
|
|
641
|
+
# Assumption - sto is Script() object. Please refer to help(Script)
|
|
642
|
+
# for creating Script object.
|
|
643
|
+
|
|
644
|
+
# Run user script in local mode with input from table.
|
|
645
|
+
>>> sto.test_script(data_row_limit=300, password='alice', exec_mode='local')
|
|
646
|
+
|
|
647
|
+
############ STDOUT Output ############
|
|
648
|
+
word count_input
|
|
649
|
+
0 1 1
|
|
650
|
+
1 Old 1
|
|
651
|
+
2 Macdonald 1
|
|
652
|
+
3 Had 1
|
|
653
|
+
4 A 1
|
|
654
|
+
5 Farm 1
|
|
655
|
+
|
|
656
|
+
# Run user script in local mode with logmech as 'TD2'.
|
|
657
|
+
>>> sto.test_script(script_args="4 5 10 6 480", password="alice", logmech="TD2")
|
|
658
|
+
|
|
659
|
+
# Run user script in local mode with logmech as 'TDNEGO'.
|
|
660
|
+
>>> sto.test_script(script_args="4 5 10 6 480", password="alice", logmech="TDNEGO")
|
|
661
|
+
|
|
662
|
+
# Run user script in local mode with logmech as 'LDAP'.
|
|
663
|
+
>>> sto.test_script(script_args="4 5 10 6 480", password="alice", logmech="LDAP")
|
|
664
|
+
|
|
665
|
+
# Run user script in local mode with logmech as 'KRB5'.
|
|
666
|
+
>>> sto.test_script(script_args="4 5 10 6 480", password="alice", logmech="KRB5")
|
|
667
|
+
|
|
668
|
+
# Run user script in local mode with logmech as 'JWT'.
|
|
669
|
+
>>> sto.test_script(script_args="4 5 10 6 480", password="alice",
|
|
670
|
+
logmech='JWT', logdata='token=eyJpc...h8dA')
|
|
671
|
+
|
|
672
|
+
"""
|
|
673
|
+
logmech_valid_values = ['TD2', 'TDNEGO', 'LDAP', 'KRB5', 'JWT']
|
|
674
|
+
|
|
675
|
+
awu_matrix_test = []
|
|
676
|
+
awu_matrix_test.append((["supporting_files", supporting_files, True,
|
|
677
|
+
(str, list), True]))
|
|
678
|
+
awu_matrix_test.append((["input_data_file", input_data_file, True, (str), True]))
|
|
679
|
+
awu_matrix_test.append((["script_args", script_args, True, (str), False]))
|
|
680
|
+
awu_matrix_test.append((["exec_mode", exec_mode, True, (str), True,
|
|
681
|
+
[TableOperatorConstants.LOCAL_EXEC.value]]))
|
|
682
|
+
|
|
683
|
+
data_row_limit = kwargs.pop("data_row_limit", 1000)
|
|
684
|
+
awu_matrix_test.append((["data_row_limit", data_row_limit, True, (int), True]))
|
|
685
|
+
|
|
686
|
+
data_file_delimiter = kwargs.pop("data_file_delimiter", '\t')
|
|
687
|
+
awu_matrix_test.append((["data_file_delimiter", data_file_delimiter, True,
|
|
688
|
+
(str), False]))
|
|
689
|
+
|
|
690
|
+
data_file_quote_char = kwargs.pop("data_file_quote_char", '"')
|
|
691
|
+
awu_matrix_test.append((["data_file_quote_char", data_file_quote_char, True,
|
|
692
|
+
(str), False]))
|
|
693
|
+
|
|
694
|
+
data_file_header = kwargs.pop("data_file_header", True)
|
|
695
|
+
awu_matrix_test.append((["data_file_header", data_file_header, True, (bool)]))
|
|
696
|
+
|
|
697
|
+
logmech = kwargs.pop("logmech", "TD2")
|
|
698
|
+
awu_matrix_test.append(
|
|
699
|
+
["logmech", logmech, True, (str), True, logmech_valid_values])
|
|
700
|
+
|
|
701
|
+
logdata = kwargs.pop("logdata", None)
|
|
702
|
+
awu_matrix_test.append(["logdata", logdata, True, (str), True])
|
|
703
|
+
|
|
704
|
+
# Validate argument types.
|
|
705
|
+
_Validators._validate_function_arguments(awu_matrix_test)
|
|
706
|
+
|
|
707
|
+
self._validate()
|
|
708
|
+
|
|
709
|
+
if logmech == "JWT" and not logdata:
|
|
710
|
+
raise TeradataMlException(
|
|
711
|
+
Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING, 'logdata',
|
|
712
|
+
'logmech=JWT'),
|
|
713
|
+
MessageCodes.DEPENDENT_ARG_MISSING)
|
|
714
|
+
|
|
715
|
+
if data_row_limit <= 0:
|
|
716
|
+
raise ValueError(Messages.get_message(MessageCodes.TDMLDF_POSITIVE_INT).
|
|
717
|
+
format("data_row_limit", "greater than"))
|
|
718
|
+
|
|
719
|
+
# Either of 'input_data_file' or 'password' argument is required.
|
|
720
|
+
password = kwargs.pop("password", None)
|
|
721
|
+
|
|
722
|
+
# When exec_mode is local, the connection object is used to get the values in the table.
|
|
723
|
+
if exec_mode == "local" and not (input_data_file or self.data):
|
|
724
|
+
message = Messages.get_message(MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT,
|
|
725
|
+
"input_data_file", "Script data")
|
|
726
|
+
raise TeradataMlException(message, MessageCodes.EITHER_THIS_OR_THAT_ARGUMENT)
|
|
727
|
+
|
|
728
|
+
if not self.script_name and self.files_local_path:
|
|
729
|
+
message = Messages.get_message(MessageCodes.MISSING_ARGS,
|
|
730
|
+
"script_name and files_local_path")
|
|
731
|
+
raise TeradataMlException(message, MessageCodes.MISSING_ARGS)
|
|
732
|
+
|
|
733
|
+
if input_data_file:
|
|
734
|
+
if self.files_local_path is None:
|
|
735
|
+
message = Messages.get_message(MessageCodes.DEPENDENT_ARG_MISSING,
|
|
736
|
+
"files_local_path", "input_data_file")
|
|
737
|
+
raise TeradataMlException(message, MessageCodes.DEPENDENT_ARG_MISSING)
|
|
738
|
+
else:
|
|
739
|
+
# Check if file exists.
|
|
740
|
+
fpath = os.path.join(self.files_local_path,
|
|
741
|
+
input_data_file)
|
|
742
|
+
_Validators._validate_file_exists(fpath)
|
|
743
|
+
|
|
744
|
+
if self.script_name and self.files_local_path:
|
|
745
|
+
# Check if file exists.
|
|
746
|
+
fpath = os.path.join(self.files_local_path,
|
|
747
|
+
os.path.basename(self.script_name))
|
|
748
|
+
_Validators._validate_file_exists(fpath)
|
|
749
|
+
|
|
750
|
+
if exec_mode.upper() == TableOperatorConstants.LOCAL_EXEC.value:
|
|
751
|
+
user_script_path = os.path.join(self.files_local_path, self.script_name)
|
|
752
|
+
import sys
|
|
753
|
+
cmd = [str(sys.executable), user_script_path]
|
|
754
|
+
cmd.extend(script_args)
|
|
755
|
+
|
|
756
|
+
if input_data_file is not None:
|
|
757
|
+
input_file_path = os.path.join(self.files_local_path, input_data_file)
|
|
758
|
+
|
|
759
|
+
# Run user script locally with input from a file.
|
|
760
|
+
exec_cmd_output = self.__local_run_user_script_input_file(
|
|
761
|
+
cmd, input_file_path, data_file_delimiter, data_file_quote_char, data_file_header)
|
|
762
|
+
try:
|
|
763
|
+
return self.__process_test_script_output(exec_cmd_output)
|
|
764
|
+
except Exception as exp:
|
|
765
|
+
raise
|
|
766
|
+
|
|
767
|
+
else:
|
|
768
|
+
if self.data.shape[0] > data_row_limit:
|
|
769
|
+
raise ValueError(
|
|
770
|
+
Messages.get_message(MessageCodes.DATAFRAME_LIMIT_ERROR,
|
|
771
|
+
'data_row_limit', 'data_row_limit',
|
|
772
|
+
data_row_limit))
|
|
773
|
+
|
|
774
|
+
if not self.data._table_name:
|
|
775
|
+
self.data._table_name = df_utils._execute_node_return_db_object_name(
|
|
776
|
+
self.data._nodeid, self.data._metaexpr)
|
|
777
|
+
|
|
778
|
+
table_name = UtilFuncs._extract_table_name(self.data._table_name)
|
|
779
|
+
|
|
780
|
+
# Run user script locally with input from db.
|
|
781
|
+
exec_cmd_output = self.__local_run_user_script_input_db(cmd, table_name)
|
|
782
|
+
try:
|
|
783
|
+
return self.__process_test_script_output(exec_cmd_output)
|
|
784
|
+
except Exception as exp:
|
|
785
|
+
raise
|
|
786
|
+
|
|
787
|
+
def __local_run_user_script_input_file(self, cmd, input_file_path,
|
|
788
|
+
data_file_delimiter='\t',
|
|
789
|
+
data_file_quote_char='"',
|
|
790
|
+
data_file_header=True):
|
|
791
|
+
"""
|
|
792
|
+
DESCRIPTION:
|
|
793
|
+
Function to run the user script in local mode with input from file.
|
|
794
|
+
|
|
795
|
+
PARAMETERS:
|
|
796
|
+
cmd:
|
|
797
|
+
Required Argument.
|
|
798
|
+
Specifies the command for running the user script.
|
|
799
|
+
Types: str
|
|
800
|
+
|
|
801
|
+
input_file_path:
|
|
802
|
+
Required Argument.
|
|
803
|
+
Specifies the absolute local path of input data file.
|
|
804
|
+
Types: str
|
|
805
|
+
|
|
806
|
+
data_file_delimiter:
|
|
807
|
+
Optional Argument.
|
|
808
|
+
Specifies the delimiter used in input data file.
|
|
809
|
+
Default Value: '\t'
|
|
810
|
+
Types: str
|
|
811
|
+
|
|
812
|
+
data_file_quote_char:
|
|
813
|
+
Optional Argument.
|
|
814
|
+
Specifies the quote character used in input data file.
|
|
815
|
+
Default Value: '"'
|
|
816
|
+
Types: str
|
|
817
|
+
|
|
818
|
+
data_file_header:
|
|
819
|
+
Optional Argument.
|
|
820
|
+
Specifies whether the input data file has header.
|
|
821
|
+
Default Value: True
|
|
822
|
+
Types: bool
|
|
823
|
+
|
|
824
|
+
RETURNS:
|
|
825
|
+
The string output of the command that is run on input data file.
|
|
826
|
+
|
|
827
|
+
RAISES:
|
|
828
|
+
Exception.
|
|
829
|
+
|
|
830
|
+
EXAMPLES:
|
|
831
|
+
self.__local_run_user_script_input_file(cmd ="cmd",
|
|
832
|
+
input_file_path = "input_file_path",
|
|
833
|
+
data_file_delimiter = "data_file_delimiter",
|
|
834
|
+
data_file_quote_char = "data_file_quote_char",
|
|
835
|
+
data_file_header = True)
|
|
836
|
+
|
|
837
|
+
"""
|
|
838
|
+
with open(input_file_path) as data_file:
|
|
839
|
+
import csv
|
|
840
|
+
from pandas import isna as pd_isna
|
|
841
|
+
|
|
842
|
+
data_handle = StringIO()
|
|
843
|
+
|
|
844
|
+
# Read data from input file.
|
|
845
|
+
ip_data = csv.reader(data_file,
|
|
846
|
+
delimiter=data_file_delimiter,
|
|
847
|
+
quotechar=data_file_quote_char)
|
|
848
|
+
# Skip the first row of input file if data_file_header is True.
|
|
849
|
+
if data_file_header:
|
|
850
|
+
next(ip_data)
|
|
851
|
+
for row in ip_data:
|
|
852
|
+
if self.quotechar is not None:
|
|
853
|
+
# A NULL value should not be enclosed in quotes.
|
|
854
|
+
# The CSV module has no support for such output with writer,
|
|
855
|
+
# and hence the custom formatting.
|
|
856
|
+
line = ['' if pd_isna(s) else "{}{}{}".format(self.quotechar,
|
|
857
|
+
str(s),
|
|
858
|
+
self.quotechar)
|
|
859
|
+
for s in row]
|
|
860
|
+
else:
|
|
861
|
+
line = ['' if pd_isna(s) else str(s) for s in row]
|
|
862
|
+
|
|
863
|
+
complete_line = (self.delimiter.join(line))
|
|
864
|
+
|
|
865
|
+
data_handle.write(complete_line)
|
|
866
|
+
data_handle.write("\n")
|
|
867
|
+
|
|
868
|
+
return self.__run_user_script_subprocess(cmd, data_handle)
|
|
869
|
+
|
|
870
|
+
def __run_user_script_subprocess(self, cmd, data_handle):
|
|
871
|
+
"""
|
|
872
|
+
DESCRIPTION:
|
|
873
|
+
Function to run the user script in a new process and return the output.
|
|
874
|
+
|
|
875
|
+
PARAMETERS:
|
|
876
|
+
cmd:
|
|
877
|
+
Required Argument.
|
|
878
|
+
Specifies the command for running the script.
|
|
879
|
+
Types: str
|
|
880
|
+
|
|
881
|
+
data_handle:
|
|
882
|
+
Required Argument.
|
|
883
|
+
Specifies the data handle for the input data required by the user script.
|
|
884
|
+
|
|
885
|
+
RETURNS:
|
|
886
|
+
Output of user script on input data supplied in data_handle.
|
|
887
|
+
|
|
888
|
+
RAISES:
|
|
889
|
+
None.
|
|
890
|
+
|
|
891
|
+
EXAMPLES:
|
|
892
|
+
self.__run_user_script_subprocess(cmd = "exec_cmd_output",
|
|
893
|
+
data_handle = data_handle)
|
|
894
|
+
|
|
895
|
+
"""
|
|
896
|
+
# Launching new process to run the user script.
|
|
897
|
+
try:
|
|
898
|
+
proc = subprocess.Popen(cmd, stdin=subprocess.PIPE,
|
|
899
|
+
stdout=subprocess.PIPE,
|
|
900
|
+
stderr=subprocess.PIPE)
|
|
901
|
+
process_output, process_error = proc.communicate(data_handle.getvalue().encode())
|
|
902
|
+
data_handle.close()
|
|
903
|
+
|
|
904
|
+
if proc.returncode == 0:
|
|
905
|
+
return process_output.decode("utf-8").rstrip("\r|\n")
|
|
906
|
+
else:
|
|
907
|
+
message = Messages.get_message(MessageCodes.SCRIPT_LOCAL_RUN_ERROR).\
|
|
908
|
+
format(process_error)
|
|
909
|
+
raise TeradataMlException(message, MessageCodes.SCRIPT_LOCAL_RUN_ERROR)
|
|
910
|
+
except Exception as e:
|
|
911
|
+
raise e
|
|
912
|
+
|
|
913
|
+
def __process_test_script_output(self, exec_cmd_output):
|
|
914
|
+
"""
|
|
915
|
+
DESCRIPTION:
|
|
916
|
+
Function to format the output of the user script.
|
|
917
|
+
|
|
918
|
+
PARAMETERS:
|
|
919
|
+
exec_cmd_output:
|
|
920
|
+
Required Argument.
|
|
921
|
+
Specifies the output returned by the user script.
|
|
922
|
+
Types: str
|
|
923
|
+
|
|
924
|
+
RETURNS:
|
|
925
|
+
The test script output as Pandas DataFrame.
|
|
926
|
+
|
|
927
|
+
RAISES:
|
|
928
|
+
Exception.
|
|
929
|
+
|
|
930
|
+
EXAMPLES:
|
|
931
|
+
self.__process_test_script_output(exec_cmd_output = "exec_cmd_output")
|
|
932
|
+
"""
|
|
933
|
+
try:
|
|
934
|
+
kwargs = dict()
|
|
935
|
+
if self.quotechar is not None:
|
|
936
|
+
kwargs['quotechar'] = self.quotechar
|
|
937
|
+
kwargs['quoting'] = 1 # QUOTE_ALL
|
|
938
|
+
|
|
939
|
+
output = StringIO(exec_cmd_output)
|
|
940
|
+
|
|
941
|
+
from pandas import read_csv as pd_read_csv
|
|
942
|
+
|
|
943
|
+
# Form a pandas dataframe.
|
|
944
|
+
df = pd_read_csv(output, sep=self.delimiter, index_col=False, header=None,
|
|
945
|
+
names=list(self.returns.keys()), **kwargs)
|
|
946
|
+
return df
|
|
947
|
+
|
|
948
|
+
except Exception as exp:
|
|
949
|
+
raise exp
|
|
950
|
+
|
|
951
|
+
def __local_run_user_script_input_db(self, cmd, table_name):
|
|
952
|
+
"""
|
|
953
|
+
DESCRIPTION:
|
|
954
|
+
Function to run the user script in local mode with input from db.
|
|
955
|
+
|
|
956
|
+
PARAMETERS:
|
|
957
|
+
cmd:
|
|
958
|
+
Required Argument.
|
|
959
|
+
Specifies the command for running the user script.
|
|
960
|
+
Types: str
|
|
961
|
+
|
|
962
|
+
table_name:
|
|
963
|
+
Required Argument.
|
|
964
|
+
Specifies the table name for input to user script.
|
|
965
|
+
Types: str
|
|
966
|
+
|
|
967
|
+
RETURNS:
|
|
968
|
+
The string output of the command that is run on the Vantage table.
|
|
969
|
+
|
|
970
|
+
RAISES:
|
|
971
|
+
Exception.
|
|
972
|
+
|
|
973
|
+
EXAMPLES:
|
|
974
|
+
self.__local_run_user_script_input_db(cmd = "cmd", table_name = "table_name")
|
|
975
|
+
|
|
976
|
+
"""
|
|
977
|
+
db_data_handle = StringIO()
|
|
978
|
+
try:
|
|
979
|
+
con = get_connection()
|
|
980
|
+
# Query for reading data from DB.
|
|
981
|
+
query = ("SELECT * FROM {} ORDER BY 1;".format(table_name))
|
|
982
|
+
cur = execute_sql(query)
|
|
983
|
+
row = cur.fetchone()
|
|
984
|
+
from pandas import isna as pd_isna
|
|
985
|
+
while row:
|
|
986
|
+
if self.quotechar is not None:
|
|
987
|
+
# A NULL value should not be enclosed in quotes.
|
|
988
|
+
# The CSV module has no support for such output with writer,
|
|
989
|
+
# and hence the custom formatting.
|
|
990
|
+
line = ['' if pd_isna(s) else "{}{}{}".format(self.quotechar,
|
|
991
|
+
str(s),
|
|
992
|
+
self.quotechar)
|
|
993
|
+
for s in row]
|
|
994
|
+
else:
|
|
995
|
+
line = ['' if pd_isna(s) else str(s) for s in row]
|
|
996
|
+
|
|
997
|
+
complete_line = (self.delimiter.join(line))
|
|
998
|
+
db_data_handle.write(complete_line)
|
|
999
|
+
db_data_handle.write("\n")
|
|
1000
|
+
row = cur.fetchone()
|
|
1001
|
+
except Exception as exp:
|
|
1002
|
+
raise exp
|
|
1003
|
+
|
|
1004
|
+
return self.__run_user_script_subprocess(cmd, db_data_handle)
|
|
1005
|
+
|
|
1006
|
+
def __repr__(self):
|
|
1007
|
+
"""
|
|
1008
|
+
Returns the string representation for the class instance.
|
|
1009
|
+
"""
|
|
1010
|
+
if self.result is None:
|
|
1011
|
+
repr_string = "Result is empty. Please run execute_script first."
|
|
1012
|
+
else:
|
|
1013
|
+
repr_string = "############ STDOUT Output ############"
|
|
1014
|
+
repr_string = "{}\n\n{}".format(repr_string, self.result)
|
|
1015
|
+
return repr_string
|
|
1016
|
+
|
|
1017
|
+
def deploy(self, model_column, partition_columns=None, model_file_prefix=None, retry=3,
|
|
1018
|
+
retry_timeout=30):
|
|
1019
|
+
"""
|
|
1020
|
+
DESCRIPTION:
|
|
1021
|
+
Function deploys the models generated after running `execute_script()` in database in
|
|
1022
|
+
VantageCloud Enterprise or in user environment in VantageCloud Lake.
|
|
1023
|
+
If deployed files are not needed, these files can be removed using `remove_file()` in
|
|
1024
|
+
database or `UserEnv.remove_file()` in lake.
|
|
1025
|
+
|
|
1026
|
+
Note:
|
|
1027
|
+
If the models (one or many) fail to get deployed in Vantage even after retries,
|
|
1028
|
+
try deploying them again using `install_file()` function or remove installed
|
|
1029
|
+
files using `remove_file()` function.
|
|
1030
|
+
|
|
1031
|
+
PARAMETERS:
|
|
1032
|
+
model_column:
|
|
1033
|
+
Required Argument.
|
|
1034
|
+
Specifies the column name in which models are present.
|
|
1035
|
+
Supported types of model in this column are CLOB and BLOB.
|
|
1036
|
+
Note:
|
|
1037
|
+
The column mentioned in this argument should be present in
|
|
1038
|
+
<apply_obj/script_obj>.result.
|
|
1039
|
+
Types: str
|
|
1040
|
+
|
|
1041
|
+
partition_columns:
|
|
1042
|
+
Optional Argument.
|
|
1043
|
+
Specifies the columns on which data is partitioned.
|
|
1044
|
+
Note:
|
|
1045
|
+
The columns mentioned in this argument should be present in
|
|
1046
|
+
<apply_obj/script_obj>.result.
|
|
1047
|
+
Types: str OR list of str
|
|
1048
|
+
|
|
1049
|
+
model_file_prefix:
|
|
1050
|
+
Optional Argument.
|
|
1051
|
+
Specifies the prefix to be used to the generated model file.
|
|
1052
|
+
If this argument is None, prefix is auto-generated.
|
|
1053
|
+
If the argument "model_column" contains multiple models and
|
|
1054
|
+
* "partition_columns" is None - model file prefix is appended with
|
|
1055
|
+
underscore(_) and numbers starting from one(1) to get model file
|
|
1056
|
+
names.
|
|
1057
|
+
* "partition_columns" is NOT None - model file prefix is appended
|
|
1058
|
+
with underscore(_) and unique values in partition_columns are joined
|
|
1059
|
+
with underscore(_) to generate model file names.
|
|
1060
|
+
Types: str
|
|
1061
|
+
|
|
1062
|
+
retry:
|
|
1063
|
+
Optional Argument.
|
|
1064
|
+
Specifies the maximum number of retries to be made to deploy the models.
|
|
1065
|
+
This argument helps in retrying the deployment of models in case of network issues.
|
|
1066
|
+
This argument should be a positive integer.
|
|
1067
|
+
Default Value: 3
|
|
1068
|
+
Types: int
|
|
1069
|
+
|
|
1070
|
+
retry_timeout:
|
|
1071
|
+
Optional Argument. Used along with retry argument. Ignored otherwise.
|
|
1072
|
+
Specifies the time interval in seconds between each retry.
|
|
1073
|
+
This argument should be a positive integer.
|
|
1074
|
+
Default Value: 30
|
|
1075
|
+
Types: int
|
|
1076
|
+
|
|
1077
|
+
RETURNS:
|
|
1078
|
+
List of generated file identifiers in database or file names in lake.
|
|
1079
|
+
|
|
1080
|
+
RAISES:
|
|
1081
|
+
- TeradatamlException
|
|
1082
|
+
- Throws warning when models failed to deploy even after retries.
|
|
1083
|
+
|
|
1084
|
+
EXAMPLES:
|
|
1085
|
+
>>> import teradataml
|
|
1086
|
+
>>> from teradataml import load_example_data
|
|
1087
|
+
>>> load_example_data("openml", "multi_model_classification")
|
|
1088
|
+
|
|
1089
|
+
>>> df = DataFrame("multi_model_classification")
|
|
1090
|
+
>>> df
|
|
1091
|
+
col2 col3 col4 label group_column partition_column_1 partition_column_2
|
|
1092
|
+
col1
|
|
1093
|
+
-1.013454 0.855765 -0.256920 -0.085301 1 9 0 10
|
|
1094
|
+
-3.146552 -1.805530 -0.071515 -2.093998 0 10 0 10
|
|
1095
|
+
-1.175097 -0.950745 0.018280 -0.895335 1 10 0 11
|
|
1096
|
+
0.218497 -0.968924 0.183037 -0.303142 0 11 0 11
|
|
1097
|
+
-1.471908 -0.029195 -0.166141 -0.645309 1 11 1 10
|
|
1098
|
+
1.082336 0.846357 -0.012063 0.812633 1 11 1 11
|
|
1099
|
+
-1.132068 -1.209750 0.065422 -0.982986 0 10 1 10
|
|
1100
|
+
-0.440339 2.290676 -0.423878 0.749467 1 8 1 10
|
|
1101
|
+
-0.615226 -0.546472 0.017496 -0.488720 0 12 0 10
|
|
1102
|
+
0.579671 -0.573365 0.160603 0.014404 0 9 1 10
|
|
1103
|
+
|
|
1104
|
+
## Run in VantageCloud Enterprise using Script object.
|
|
1105
|
+
# Install Script file.
|
|
1106
|
+
>>> file_location = os.path.join(os.path.dirname(teradataml.__file__), "data", "scripts", "deploy_script.py")
|
|
1107
|
+
>>> install_file("deploy_script", file_location, replace=True)
|
|
1108
|
+
|
|
1109
|
+
>>> execute_sql("SET SESSION SEARCHUIFDBPATH = <db_name>;")
|
|
1110
|
+
|
|
1111
|
+
# Variables needed for Script execution.
|
|
1112
|
+
>>> from teradataml import configure
|
|
1113
|
+
>>> script_command = f'{configure.indb_install_location} ./<db_name>/deploy_script.py enterprise'
|
|
1114
|
+
>>> partition_columns = ["partition_column_1", "partition_column_2"]
|
|
1115
|
+
>>> columns = ["col1", "col2", "col3", "col4", "label",
|
|
1116
|
+
"partition_column_1", "partition_column_2"]
|
|
1117
|
+
>>> returns = OrderedDict([("partition_column_1", INTEGER()),
|
|
1118
|
+
("partition_column_2", INTEGER()),
|
|
1119
|
+
("model", CLOB())])
|
|
1120
|
+
|
|
1121
|
+
# Script execution.
|
|
1122
|
+
>>> obj = Script(data=df.select(columns),
|
|
1123
|
+
script_command=script_command,
|
|
1124
|
+
data_partition_column=partition_columns,
|
|
1125
|
+
returns=returns
|
|
1126
|
+
)
|
|
1127
|
+
>>> opt = obj.execute_script()
|
|
1128
|
+
>>> opt
|
|
1129
|
+
partition_column_1 partition_column_2 model model
|
|
1130
|
+
0 10 b'gAejc1.....drIr'
|
|
1131
|
+
0 11 b'gANjcw.....qWIu'
|
|
1132
|
+
1 10 b'abdwcd.....dWIz'
|
|
1133
|
+
1 11 b'gA4jc4.....agfu'
|
|
1134
|
+
|
|
1135
|
+
# Example 1: Provide only "partition_columns" argument. Here, "model_file_prefix"
|
|
1136
|
+
# is auto generated.
|
|
1137
|
+
>>> obj.deploy(model_column="model",
|
|
1138
|
+
partition_columns=["partition_column_1", "partition_column_2"])
|
|
1139
|
+
['model_file_1710436227163427__0_10',
|
|
1140
|
+
'model_file_1710436227163427__1_10',
|
|
1141
|
+
'model_file_1710436227163427__0_11',
|
|
1142
|
+
'model_file_1710436227163427__1_11']
|
|
1143
|
+
|
|
1144
|
+
# Example 2: Provide only "model_file_prefix" argument. Here, filenames are suffixed
|
|
1145
|
+
# with 1, 2, 3, ... for multiple models.
|
|
1146
|
+
>>> obj.deploy(model_column="model", model_file_prefix="my_prefix_new_")
|
|
1147
|
+
['my_prefix_new__1',
|
|
1148
|
+
'my_prefix_new__2',
|
|
1149
|
+
'my_prefix_new__3',
|
|
1150
|
+
'my_prefix_new__4']
|
|
1151
|
+
|
|
1152
|
+
# Example 3: Without both "partition_columns" and "model_file_prefix" arguments.
|
|
1153
|
+
>>> obj.deploy(model_column="model")
|
|
1154
|
+
['model_file_1710438346528596__1',
|
|
1155
|
+
'model_file_1710438346528596__2',
|
|
1156
|
+
'model_file_1710438346528596__3',
|
|
1157
|
+
'model_file_1710438346528596__4']
|
|
1158
|
+
|
|
1159
|
+
# Example 4: Provide both "partition_columns" and "model_file_prefix" arguments.
|
|
1160
|
+
>>> obj.deploy(model_column="model", model_file_prefix="my_prefix_new_",
|
|
1161
|
+
partition_columns=["partition_column_1", "partition_column_2"])
|
|
1162
|
+
['my_prefix_new__0_10',
|
|
1163
|
+
'my_prefix_new__0_11',
|
|
1164
|
+
'my_prefix_new__1_10',
|
|
1165
|
+
'my_prefix_new__1_11']
|
|
1166
|
+
|
|
1167
|
+
# Example 5: Assuming that 2 model files fail to get installed due to network issues,
|
|
1168
|
+
# the function retries installing the failed files twice with timeout between
|
|
1169
|
+
# retries of 10 secs.
|
|
1170
|
+
>>> opt = obj.deploy(model_column="model", model_file_prefix="my_prefix_",
|
|
1171
|
+
partition_columns=["partition_column_1", "partition_column_2"],
|
|
1172
|
+
retry=2, retry_timeout=10)
|
|
1173
|
+
RuntimeWarning: The following model files failed to get installed in Vantage:
|
|
1174
|
+
['my_prefix__1_10', 'my_prefix__1_11'].
|
|
1175
|
+
Try manually deploying them from the path '<temp_path>' using:
|
|
1176
|
+
- `install_file()` when connected to Enterprise/On-Prem system or
|
|
1177
|
+
- `UserEnv.install_file()` when connected to Lake system.
|
|
1178
|
+
OR
|
|
1179
|
+
Remove the returned installed files manually using `remove_file()` or `UserEnv.remove_file()`.
|
|
1180
|
+
>>> opt
|
|
1181
|
+
['my_prefix__0_10',
|
|
1182
|
+
'my_prefix__0_11']
|
|
1183
|
+
|
|
1184
|
+
## Run in VantageCloud Lake using Apply object.
|
|
1185
|
+
# Let's assume an user environment named "user_env" already exists in VantageCloud Lake,
|
|
1186
|
+
# which will be used for the examples below.
|
|
1187
|
+
|
|
1188
|
+
# ApplyTableOperator returns BLOB type for model column as per deploy_script.py.
|
|
1189
|
+
>>> returns = OrderedDict([("partition_column_1", INTEGER()),
|
|
1190
|
+
("partition_column_2", INTEGER()),
|
|
1191
|
+
("model", BLOB())])
|
|
1192
|
+
|
|
1193
|
+
# Install the script file which returns model and partition columns.
|
|
1194
|
+
>>> user_env.install_file(file_location)
|
|
1195
|
+
|
|
1196
|
+
>>> script_command = 'python3 deploy_script.py lake'
|
|
1197
|
+
>>> obj = Apply(data=df.select(columns),
|
|
1198
|
+
script_command=script_command,
|
|
1199
|
+
data_partition_column=partition_columns,
|
|
1200
|
+
returns=returns,
|
|
1201
|
+
env_name="user_env"
|
|
1202
|
+
)
|
|
1203
|
+
|
|
1204
|
+
>>> opt = obj.execute_script()
|
|
1205
|
+
>>> opt
|
|
1206
|
+
partition_column_1 partition_column_2 model model
|
|
1207
|
+
0 10 b'gAejc1.....drIr'
|
|
1208
|
+
0 11 b'gANjcw.....qWIu'
|
|
1209
|
+
1 10 b'abdwcd.....dWIz'
|
|
1210
|
+
1 11 b'gA4jc4.....agfu'
|
|
1211
|
+
|
|
1212
|
+
# Example 6: Provide both "partition_columns" and "model_file_prefix" arguments.
|
|
1213
|
+
>>> obj.deploy(model_column="model", model_file_prefix="my_prefix_",
|
|
1214
|
+
partition_columns=["partition_column_1", "partition_column_2"])
|
|
1215
|
+
['my_prefix__0_10',
|
|
1216
|
+
'my_prefix__0_11',
|
|
1217
|
+
'my_prefix__1_10',
|
|
1218
|
+
'my_prefix__1_11']
|
|
1219
|
+
|
|
1220
|
+
# Other examples are similar to the examples provided for VantageCloud Enterprise.
|
|
1221
|
+
"""
|
|
1222
|
+
|
|
1223
|
+
arg_info_matrix = []
|
|
1224
|
+
arg_info_matrix.append(["model_column", model_column, False, (str)])
|
|
1225
|
+
arg_info_matrix.append(["partition_columns", partition_columns, True, (str, list)])
|
|
1226
|
+
arg_info_matrix.append(["model_file_prefix", model_file_prefix, True, (str)])
|
|
1227
|
+
arg_info_matrix.append(["retry", retry, True, (int)])
|
|
1228
|
+
arg_info_matrix.append(["retry_timeout", retry_timeout, True, (int)])
|
|
1229
|
+
_Validators._validate_function_arguments(arg_info_matrix)
|
|
1230
|
+
|
|
1231
|
+
_Validators._validate_positive_int(retry, "retry", lbound_inclusive=True)
|
|
1232
|
+
_Validators._validate_positive_int(retry_timeout, "retry_timeout", lbound_inclusive=True)
|
|
1233
|
+
|
|
1234
|
+
if self.result is None:
|
|
1235
|
+
return "Result is empty. Please run execute_script first."
|
|
1236
|
+
|
|
1237
|
+
if partition_columns is None:
|
|
1238
|
+
partition_columns = []
|
|
1239
|
+
partition_columns = UtilFuncs._as_list(partition_columns)
|
|
1240
|
+
|
|
1241
|
+
req_columns = [model_column] + partition_columns
|
|
1242
|
+
|
|
1243
|
+
_Validators._validate_column_exists_in_dataframe(columns=req_columns, metaexpr=self.result._metaexpr)
|
|
1244
|
+
|
|
1245
|
+
data = self.result.select(req_columns)
|
|
1246
|
+
data._index_column = None # Without this, first column i.e., model column will be index column.
|
|
1247
|
+
|
|
1248
|
+
|
|
1249
|
+
if model_file_prefix is None:
|
|
1250
|
+
timestamp = time.time()
|
|
1251
|
+
tmp = "{}{}".format(floor(timestamp / 1000000),
|
|
1252
|
+
floor(timestamp % 1000000 * 1000000 +
|
|
1253
|
+
int(str(uuid.uuid4().fields[-1])[:10])))
|
|
1254
|
+
model_file_prefix = f"model_file_{tmp}_"
|
|
1255
|
+
|
|
1256
|
+
vals = data.get_values()
|
|
1257
|
+
|
|
1258
|
+
model_column_type = data._td_column_names_and_sqlalchemy_types[model_column.lower()].__class__.__name__
|
|
1259
|
+
|
|
1260
|
+
n_models = len(vals)
|
|
1261
|
+
|
|
1262
|
+
# Default location for .teradataml is user's home directory if configure.local_storage is not set.
|
|
1263
|
+
tempdir = GarbageCollector._get_temp_dir_name()
|
|
1264
|
+
|
|
1265
|
+
def __install_file(model_file, model_file_path):
|
|
1266
|
+
"""
|
|
1267
|
+
Function to install the model file in Vantage and return the status.
|
|
1268
|
+
"""
|
|
1269
|
+
file_installed = True
|
|
1270
|
+
try:
|
|
1271
|
+
if self.__class__.__name__ == "Script":
|
|
1272
|
+
from teradataml.dbutils.filemgr import install_file
|
|
1273
|
+
install_file(file_identifier=model_file, file_path=model_file_path,
|
|
1274
|
+
is_binary=True, suppress_output=True, replace=True)
|
|
1275
|
+
elif self.__class__.__name__ == "Apply":
|
|
1276
|
+
self.env.install_file(file_path=model_file_path, suppress_output=True, replace=True)
|
|
1277
|
+
except Exception as e:
|
|
1278
|
+
file_installed = False
|
|
1279
|
+
return file_installed
|
|
1280
|
+
|
|
1281
|
+
installed_files = []
|
|
1282
|
+
failed_files = []
|
|
1283
|
+
|
|
1284
|
+
for i, row in enumerate(vals):
|
|
1285
|
+
model = row[0]
|
|
1286
|
+
partition_values = ""
|
|
1287
|
+
if partition_columns:
|
|
1288
|
+
partition_values = "_".join([str(x) for x in row[1:]])
|
|
1289
|
+
elif n_models > 1:
|
|
1290
|
+
partition_values = str(i+1)
|
|
1291
|
+
|
|
1292
|
+
model_file = f"{model_file_prefix}_{partition_values}"
|
|
1293
|
+
model_file_path = os.path.join(tempdir, model_file)
|
|
1294
|
+
|
|
1295
|
+
if model_column_type == "CLOB":
|
|
1296
|
+
import base64
|
|
1297
|
+
model = base64.b64decode(model.partition("'")[2])
|
|
1298
|
+
elif model_column_type == "BLOB":
|
|
1299
|
+
# No operation needed.
|
|
1300
|
+
# Apply model training returns BLOB type.
|
|
1301
|
+
pass
|
|
1302
|
+
else:
|
|
1303
|
+
raise ValueError(f"Model column type {model_column_type} is not supported.")
|
|
1304
|
+
|
|
1305
|
+
with open(model_file_path, "wb") as f:
|
|
1306
|
+
f.write(model)
|
|
1307
|
+
|
|
1308
|
+
file_installed = __install_file(model_file, model_file_path)
|
|
1309
|
+
|
|
1310
|
+
if file_installed:
|
|
1311
|
+
installed_files.append(model_file)
|
|
1312
|
+
os.remove(model_file_path)
|
|
1313
|
+
else:
|
|
1314
|
+
# File failed to get installed in Vantage. Hence, keeping the file in tempdir.
|
|
1315
|
+
failed_files.append(model_file)
|
|
1316
|
+
|
|
1317
|
+
while retry and failed_files:
|
|
1318
|
+
# If there are any failed files and retry is not zero, retry installing the failed files.
|
|
1319
|
+
time.sleep(retry_timeout)
|
|
1320
|
+
retry_failed_files = []
|
|
1321
|
+
for model_file in failed_files:
|
|
1322
|
+
model_file_path = os.path.join(tempdir, model_file)
|
|
1323
|
+
file_installed = __install_file(model_file, model_file_path)
|
|
1324
|
+
|
|
1325
|
+
if file_installed:
|
|
1326
|
+
installed_files.append(model_file)
|
|
1327
|
+
os.remove(model_file_path)
|
|
1328
|
+
else:
|
|
1329
|
+
# File failed to get installed in Vantage. Hence, keeping the file in tempdir.
|
|
1330
|
+
retry_failed_files.append(model_file)
|
|
1331
|
+
failed_files = retry_failed_files
|
|
1332
|
+
retry -= 1
|
|
1333
|
+
|
|
1334
|
+
if failed_files:
|
|
1335
|
+
failed_files.sort()
|
|
1336
|
+
warning_message = "The following model files failed to get installed in Vantage:\n" + str(failed_files) + ".\n"
|
|
1337
|
+
warning_message += "Try manually deploying them from the path '" + tempdir + "' using:\n"
|
|
1338
|
+
warning_message += " - `install_file()` when connected to Enterprise/On-Prem system or\n"
|
|
1339
|
+
warning_message += " - `UserEnv.install_file()` when connected to Lake system.\n"
|
|
1340
|
+
warning_message += "OR\nRemove the returned installed files manually using `remove_file()` or `UserEnv.remove_file()`."
|
|
1341
|
+
warnings.warn(RuntimeWarning(warning_message))
|
|
1342
|
+
|
|
1343
|
+
return installed_files
|