草庐IT

python - 将 PySpark DataFrame ArrayType 字段组合成单个 ArrayType 字段

我有一个带有2个ArrayType字段的PySparkDataFrame:>>>dfDataFrame[id:string,tokens:array,bigrams:array]>>>df.take(1)[Row(id='ID1',tokens=['one','two','two'],bigrams=['onetwo','twotwo'])]我想将它们组合成一个ArrayType字段:>>>df2DataFrame[id:string,tokens_bigrams:array]>>>df2.take(1)[Row(id='ID1',tokens_bigrams=['one','two'

python - PySpark 使用字典映射创建新列

使用Spark1.6,我有一个SparkDataFrame列(命名为col1),其值为A、B、C、DS、DNS、E、F、G和H。我想用下面的dict中的值创建一个新列(比如col2)。我如何映射这个?(例如,“A”需要映射到“S”等)dict={'A':'S','B':'S','C':'S','DS':'S','DNS':'S','E':'NS','F':'NS','G':'NS','H':'NS'} 最佳答案 UDF的低效解决方案(独立于版本):frompyspark.sql.typesimportStringTypefrompy

python - 在 pyspark 中创建一个大字典

我正在尝试使用pyspark解决以下问题。我在hdfs上有一个格式为查找表转储的文件。key1,value1key2,value2...我想将其加载到pyspark中的python字典中并将其用于其他目的。所以我尝试这样做:table={}defpopulateDict(line):(k,v)=line.split(",",1)table[k]=vkvfile=sc.textFile("pathtofile")kvfile.foreach(populateDict)我发现表变量没有被修改。那么,有没有办法在spark中创建一个大的内存哈希表? 最佳答案

python - 通过 pyspark.ml CrossValidator 调整隐式 pyspark.ml ALS 矩阵分解模型的参数

我正在尝试调整使用隐式数据的ALS矩阵分解模型的参数。为此,我尝试使用pyspark.ml.tuning.CrossValidator来运行参数网格并选择最佳模型。我相信我的问题出在评估者身上,但我想不通。我可以使用回归RMSE评估器将其用于显式数据模型,如下所示:frompysparkimportSparkConf,SparkContextfrompyspark.sqlimportSQLContextfrompyspark.ml.recommendationimportALSfrompyspark.ml.tuningimportCrossValidator,ParamGridBuil

python - 如何在anaconda中导入pyspark

我正在尝试将pyspark与anaconda一起使用。安装spark并设置$SPARK_HOME变量后,我尝试了:$pipinstallpyspark这(当然)行不通,因为我发现我需要通过telpython来查找$SPARK_HOME/python/下的pyspark。问题是要做到这一点,我需要设置$PYTHONPATH而anaconda不使用该环境变量。我试图将$SPARK_HOME/python/的内容复制到ANACONDA_HOME/lib/python2.7/site-packages/但它不起作用。在anaconda中使用pyspark有什么解决方案吗?

python - 如何在 PySpark DataFrame 中将 ArrayType 转换为 DenseVector?

我在尝试构建MLPipeline时遇到以下错误:pyspark.sql.utils.IllegalArgumentException:'requirementfailed:Columnfeaturesmustbeoftypeorg.apache.spark.ml.linalg.VectorUDT@3bfc3ba7butwasactuallyArrayType(DoubleType,true).'我的features列包含一个浮点值数组。听起来我需要将它们转换为某种类型的向量(它不是稀疏的,所以是DenseVector?)。有没有办法直接在DataFrame上执行此操作,还是我需要转换为

python - 如何从 'pyspark.sql.types.Row' 获取所有列/属性名称?

我正在使用Spark1.4.1版的PythonAPI。我的行对象看起来像这样:row_info=Row(name=Tim,age=5,is_subscribed=false)我怎样才能得到对象属性的列表?类似于:["name","age","is_subscribed"] 最佳答案 如果您不关心顺序,您可以简单地从dict中提取这些:list(row_info.asDict())否则我知道的唯一选择是直接使用__fields__:row_info.__fields__ 关于python-

python - 从 pyspark 中的数据框构建 StructType

我是spark和python的新手,面临着从可应用于我的数据文件的元数据文件构建模式的困难。场景:数据文件的元数据文件(csv格式),包含列及其类型:例如:id,int,10,"","",id,"","",TRUE,"",0created_at,timestamp,"","","",created_at,"","",FALSE,"",0我已成功将其转换为如下所示的数据框:+--------------------+---------------+|name|type|+--------------------+---------------+|id|IntegerType()||cre

python - 如何在 pyspark 中获取 Python 库?

我想在pyspark中使用matplotlib.bblpath或shapely.geometry库。当我尝试导入它们中的任何一个时,出现以下错误:>>>fromshapely.geometryimportpolygonTraceback(mostrecentcalllast):File"",line1,inImportError:Nomodulenamedshapely.geometry我知道该模块不存在,但如何将这些包引入我的pyspark库? 最佳答案 在Spark上下文中尝试使用:SparkContext.addPyFile(

python - pyspark 错误 : AttributeError: 'SparkSession' object has no attribute 'parallelize'

我在Jupyternotebook上使用pyspark。以下是Spark的设置方式:importfindsparkfindspark.init(spark_home='/home/edamame/spark/spark-2.0.0-bin-spark-2.0.0-bin-hadoop2.6-hive',python_path='python2.7')importpysparkfrompyspark.sqlimport*sc=pyspark.sql.SparkSession.builder.master("yarn-client").config("spark.executor.memo