2 liu312018859 liu312018859 于 2016.02.23 16:03 提问

spark创建dataframe导入phoenix如何禁止自动创建字段编号

请教:从HDFS里读一个文件,map开拿出数据,转换成dataframe类型,再放入phoenix里面。转换成dataframe后,为什么给数据自动加一个前缀"_1","_2"。这样导致数据放入phoenix的时候,列簇对应不上,phoenix表已经创建好,定义过列簇名,下面是代码,和报错
图片说明
我创建phoenix表的行键列簇名字已经定义好了:HANGJIAN , LIECU ,LIECU2 ,LEICU5 ,HANGJIAN5
spark转换rdd的时候自动添加了"_1", "_2","_3"' "_4", "_5"
图片说明
能不能转换数据的时候 ,不自动 加: _1 _2 等等前缀,直接让数据存入phoenix表中。请问大神们是怎么做的?

3个回答

liu312018859
liu312018859   2016.02.24 10:06
已采纳

问题搞定了
df = sqlContext.createDataFrame(sparkRDD2,["HANGJIAN","LIECU","LIECU2","LIECU5","HANGJIAN5"])
这是官网的

from pyspark.sql import Row
Person = Row('name', 'age')
person = rdd.map(lambda r: Person(*r))
df2 = sqlContext.createDataFrame(person)
df2.collect()
[Row(name=u'Alice', age=1)]

liu312018859
liu312018859   2016.02.24 10:05

问题搞定了
df = sqlContext.createDataFrame(sparkRDD2,["HANGJIAN","LIECU","LIECU2","LIECU5","HANGJIAN5"])
这是官网的

from pyspark.sql import Row
Person = Row('name', 'age')
person = rdd.map(lambda r: Person(*r))
df2 = sqlContext.createDataFrame(person)
df2.collect()
[Row(name=u'Alice', age=1)]

liu312018859
liu312018859   2016.02.24 10:08

应该是这个
上面粘贴错了

rdd = sc.parallelize(l)
sqlContext.createDataFrame(rdd).collect()
[Row(_1=u'Alice', _2=1)]
df = sqlContext.createDataFrame(rdd, ['name', 'age'])
df.collect()
[Row(name=u'Alice', age=1)]

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!