【发布时间】:2017-01-26 02:12:55
【问题描述】:
我已经使用 pyspark.sql 将 csv 文件导入到 spark 中,并通过以下方式将其注册为临时表:
import pyspark
from pyspark.sql import SQLContext
sc = pyspark.SparkContext()
from pyspark.sql import HiveContext
sqlCtx= HiveContext(sc)
spark_df = sqlCtx.read.format('com.databricks.spark.csv').options(header='true', inferschema='true').load("./data/geo_file.csv")
spark_df.registerTempTable("geo_table")
在“geo_table”表中有一个名为“geo_location”的列,其值如下:
美国>TX>618
美国>新泽西州>241
美国>新泽西
我的问题是,如何将这些文本值转换为数值?在 sql 或 pyspark.sql 中?
在 Pandas 中,我会这样做
df["geo_location_categories"] = df["geo_location"].astype('category')
df["geo_location_codes"] = df["geo_location_categories"].cat.codes
【问题讨论】:
标签: python sql pandas pyspark pyspark-sql