问题描述
- 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表中。请问大神们是怎么做的?
解决方案
问题搞定了
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)]
解决方案二:
问题搞定了
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)]
解决方案三:
应该是这个
上面粘贴错了
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)]
时间: 2024-10-03 17:12:02