Skip to content

an error reported "Data truncated for column 'medv' at row 1"  #44

@Echo9573

Description

@Echo9573

When I test the dnnregressor in local, an error reported "Data truncated for column 'medv' at row 1", the detail reproduce way is the following:

First, add a function to sqlflow_models/dnnregressor.py as follows:

def prepare_prediction_column(prediction):
    """Return the prediction directly."""
    return prediction

then, test the model in a local docker image.

%%sqlflow
SELECT * FROM boston.train
TO TRAIN sqlflow_models.DNNRegressor WITH
  model.hidden_units = [10, 10],
  train.epoch = 10,
  validation.select = "select * from boston.test",
  validation.metrics="MeanSquaredError"
LABEL medv
INTO sqlflow_models.my_dnn_ref_model;
%%sqlflow
SELECT * FROM boston.test
TO PREDICT boston.predict_dnnref.medv
USING sqlflow_models.my_dnn_ref_model;

the error is :
debug_error_string = "{"created":"@1578055632.413593300","description":"Error received from peer ipv4:127.0.0.1:50051","file":"src/core/lib/surface/call.cc","file_line":1056,"grpc_message":"failed: exit status 1\n==========Program==========\n\nfrom sqlflow_submitter.tensorflow.predict import pred\nfrom sqlflow_submitter.tensorflow.train import TF_VERSION_2\nimport tensorflow as tf\nif TF_VERSION_2:\n from tensorflow.keras.optimizers import *\nelse:\n from tensorflow.train import *\ntry:\n import sqlflow_models\nexcept:\n pass\n\nfeature_column_names = [\n"crim",\n\n"zn",\n\n"indus",\n\n"chas",\n\n"nox",\n\n"rm",\n\n"age",\n\n"dis",\n\n"rad",\n\n"tax",\n\n"ptratio",\n\n"b",\n\n"lstat",\n]\n\nfeature_metas = dict()\n\nfeature_metas["crim"] = {\n "feature_name": "crim",\n "dtype": "float32",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\nfeature_metas["zn"] = {\n "feature_name": "zn",\n "dtype": "float32",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\nfeature_metas["indus"] = {\n "feature_name": "indus",\n "dtype": "float32",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\nfeature_metas["chas"] = {\n "feature_name": "chas",\n "dtype": "int64",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\nfeature_metas["nox"] = {\n "feature_name": "nox",\n "dtype": "float32",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\nfeature_metas["rm"] = {\n "feature_name": "rm",\n "dtype": "float32",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\nfeature_metas["age"] = {\n "feature_name": "age",\n "dtype": "float32",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\nfeature_metas["dis"] = {\n "feature_name": "dis",\n "dtype": "float32",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\nfeature_metas["rad"] = {\n "feature_name": "rad",\n "dtype": "int64",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\nfeature_metas["tax"] = {\n "feature_name": "tax",\n "dtype": "int64",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\nfeature_metas["ptratio"] = {\n "feature_name": "ptratio",\n "dtype": "float32",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\nfeature_metas["b"] = {\n "feature_name": "b",\n "dtype": "float32",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\nfeature_metas["lstat"] = {\n "feature_name": "lstat",\n "dtype": "float32",\n "delimiter": "",\n "shape": [1],\n "is_sparse": "false" == "true"\n}\n\n\nlabel_meta = {\n "feature_name": "medv",\n "dtype": "int64",\n "delimiter": "",\n "shape": [],\n "is_sparse": "false" == "true"\n}\n\nmodel_params=dict()\n\nmodel_params["hidden_units"]=[10,10]\n\n\nfeature_columns = {"feature_columns": [tf.feature_column.numeric_column("crim", shape=[1]),\ntf.feature_column.numeric_column("zn", shape=[1]),\ntf.feature_column.numeric_column("indus", shape=[1]),\ntf.feature_column.numeric_column("chas", shape=[1]),\ntf.feature_column.numeric_column("nox", shape=[1]),\ntf.feature_column.numeric_column("rm", shape=[1]),\ntf.feature_column.numeric_column("age", shape=[1]),\ntf.feature_column.numeric_column("dis", shape=[1]),\ntf.feature_column.numeric_column("rad", shape=[1]),\ntf.feature_column.numeric_column("tax", shape=[1]),\ntf.feature_column.numeric_column("ptratio", shape=[1]),\ntf.feature_column.numeric_column("b", shape=[1]),\ntf.feature_column.numeric_column("lstat", shape=[1])]}\n\npred(is_keras_model="true" == "true",\n datasource="mysql://root:root@tcp(127.0.0.1:3306)/?maxAllowedPacket=0",\n estimator=sqlflow_models.DNNRegressor,\n select="""SELECT * FROM boston.test\n""",\n result_table="boston.predict_dnnref",\n feature_columns=feature_columns,\n feature_column_names=feature_column_names,\n feature_metas=feature_metas,\n label_meta=label_meta,\n model_params=model_params,\n save="model_save",\n batch_size=1,\n hdfs_namenode_addr="",\n hive_location="",\n hdfs_user="",\n hdfs_pass="",\n is_pai="false" == "true",\n pai_table="")\n\n==========Output==========\nTraceback (most recent call last):\n File "", line 194, in \n File "/miniconda/envs/sqlflow-dev/lib/python3.6/site-packages/sqlflow_submitter/tensorflow/predict.py", line 173, in pred\n hdfs_namenode_addr, hive_location, hdfs_user, hdfs_pass)\n File "/miniconda/envs/sqlflow-dev/lib/python3.6/site-packages/sqlflow_submitter/tensorflow/predict.py", line 92, in keras_predict\n w.write(row)\n File "/miniconda/envs/sqlflow-dev/lib/python3.6/contextlib.py", line 88, in exit\n next(self.gen)\n File "/miniconda/envs/sqlflow-dev/lib/python3.6/site-packages/sqlflow_submitter/db.py", line 224, in buffered_db_writer\n w.close()\n File "/miniconda/envs/sqlflow-dev/lib/python3.6/site-packages/sqlflow_submitter/db_writer/base.py", line 36, in close\n self.flush()\n File "/miniconda/envs/sqlflow-dev/lib/python3.6/site-packages/sqlflow_submitter/db_writer/mysql.py", line 27, in flush\n cursor.executemany(statement, self.rows)\n File "/miniconda/envs/sqlflow-dev/lib/python3.6/site-packages/MySQLdb/cursors.py", line 237, in executemany\n self._get_db().encoding)\n File "/miniconda/envs/sqlflow-dev/lib/python3.6/site-packages/MySQLdb/cursors.py", line 264, in _do_execute_many\n rows += self.execute(sql + postfix)\n File "/miniconda/envs/sqlflow-dev/lib/python3.6/site-packages/MySQLdb/cursors.py", line 209, in execute\n res = self._query(query)\n File "/miniconda/envs/sqlflow-dev/lib/python3.6/site-packages/MySQLdb/cursors.py", line 315, in _query\n db.query(q)\n File "/miniconda/envs/sqlflow-dev/lib/python3.6/site-packages/MySQLdb/connections.py", line 226, in query\n _mysql.connection.query(self, query)\nMySQLdb._exceptions.DataError: (1265, "Data truncated for column 'medv' at row 1")\n","grpc_status":2}"

Metadata

Metadata

Assignees

No one assigned

    Labels

    DataScienceSome issue about the application in data scienceDiDiThe issue publisher is from DiDibugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions