nTypeError:无法合并类型 <class \'pyspark.sql.types.DoubleType\'> 和 <class \'pyspark.sql.types.Str
Posted
技术标签:
【中文标题】nTypeError:无法合并类型 <class \\\'pyspark.sql.types.DoubleType\\\'> 和 <class \\\'pyspark.sql.types.StringType\\\'>\\n\'【英文标题】:nTypeError: Can not merge type <class \'pyspark.sql.types.DoubleType\'> and <class \'pyspark.sql.types.StringType\'>\n'nTypeError:无法合并类型 <class \'pyspark.sql.types.DoubleType\'> 和 <class \'pyspark.sql.types.StringType\'>\n' 【发布时间】:2017-12-19 14:49:07 【问题描述】:我正在使用 spark 1.6 并且正在运行以下代码:
def load(self, filename):
print "Loading input file " + filename
inputpd = pd.read_csv('input/'+filename , dtype=str)
inputpd = inputpd.round(4)
inputpd = inputpd.drop(inputpd.columns[[0]], axis=1)
df_input = self.sqlContext.createDataFrame(inputpd)
return df_input
运行代码后出现类型错误:
Can not merge type <class \'pyspark.sql.types.DoubleType\'> and <class \'pyspark.sql.types.StringType\'>\n'
为了解决这个问题,我已经尝试过:
inputpd = (spark.read.format("csv").options(header="true").load('input/'+filename))
还有:
inputpd = sqlContext.read.format('com.databricks.spark.csv').options(header='true').load('input/'+filename)
但是两次我都得到错误 spark 或 sqlcontext not defined。请让我知道如何定义,因为我已经尝试过 import 语句。
【问题讨论】:
我已经解决了这个问题,但是现在我得到了错误:java.lang.ClassNotFoundException: Failed to find data source: com.databricks.spark.csv 如何使用 spark submit 命令解决这个问题? 【参考方案1】:我尝试使用 pyspark 并且可以工作...
pyspark --packages com.databricks:spark-csv_2.11:1.5.0
见this one。
sqlContext.read.format('com.databricks.spark.csv').options(header='true').load("file:/home/..." + filename).collect()
【讨论】:
以上是关于nTypeError:无法合并类型 <class \'pyspark.sql.types.DoubleType\'> 和 <class \'pyspark.sql.types.Str的主要内容,如果未能解决你的问题,请参考以下文章