【发布时间】:2017-10-16 15:07:33
【问题描述】:
我在 spark 中使用数据框以表格格式拆分和存储数据。我在文件中的数据如下所示 -
{"click_id": 123, "created_at": "2016-10-03T10:50:33", "product_id": 98373, "product_price": 220.50, "user_id": 1, "ip": "10.10.10.10"}
{"click_id": 124, "created_at": "2017-02-03T10:51:33", "product_id": 97373, "product_price": 320.50, "user_id": 1, "ip": "10.13.10.10"}
{"click_id": 125, "created_at": "2017-10-03T10:52:33", "product_id": 96373, "product_price": 20.50, "user_id": 1, "ip": "192.168.2.1"}
我已经编写了这段代码来拆分数据 -
from pyspark.sql import Row
from pyspark.sql import SparkSession
from pyspark.sql import SQLContext
import pyspark.sql.functions as psf
spark = SparkSession \
.builder \
.appName("Hello") \
.config("World") \
.getOrCreate()
sc = spark.sparkContext
sqlContext = SQLContext(sc)
ratings = spark.createDataFrame(
sc.textFile("transactions.json").map(lambda l: l.split(',')),
["Col1","Col2","Col3","Col4","Col5","Col6"]
)
ratings.registerTempTable("ratings")
final_df = sqlContext.sql("select * from ratings");
final_df.show(20,False)
上面的代码运行良好,输出如下:
从输出中可以看出,"click_id and number" 正在显示,created_at and timestamp 也正在显示。
我希望实际上只有表中的值 - click_id、created_at、product_id 等等。
如何只将这些值放入我的表中?
【问题讨论】:
-
您的意思是,删除键(
click_id, created_at等)并只保留所有 6 列的值? -
@desertnaut 是的