【发布时间】:2018-01-08 08:52:41
【问题描述】:
我在列表中有数据,并希望将其转换为 spark 数据框,其中一个列名包含“。”
我编写了以下代码,运行时没有任何错误。
input_data = [('retail', '2017-01-03T13:21:00', 134),
('retail', '2017-01-03T13:21:00', 100)]
rdd_schema = StructType([StructField('business', StringType(), True), \
StructField('date', StringType(), True), \
StructField("`US.sales`", FloatType(), True)])
input_mock_df = spark.createDataFrame(input_mock_rdd_map, rdd_schema)
下面的代码返回列名
input_mock_df.columns
但是对这个数据框的任何操作都会给出错误,例如
input_mock_df.count()
如何制作包含“.”的有效 spark 数据帧?
注意:
- 我不给“。”在列名中,代码运行良好。
- 我想使用原生 spark 解决它,而不是使用 pandas 等
【问题讨论】:
-
也试过这个没有成功,好像点是为遍历结构保留的
-
点表示(tableName.columnName)结构。我不确定是否有可能的出路。
-
在定义模式时,您不必在字段名称中使用 ` 字符。使用列名时需要该字符。只需在架构定义中删除该字符,您就可以开始了。
标签: apache-spark pyspark apache-spark-sql spark-dataframe apache-spark-mllib