我正在运行以下命令,以获得所有州的医生执照。
{
var srchExp = ""
for (i <- 1 to 15 )
{`enter code here`
srchExp = srchExp + s"'License Number $i',`Provider License Number_$i`,'Provider
License Number State Code_$i ',`Provider License Number State Code_$i`,"
if (i == 15) {
val srchLen = srchExp.length
srchExp = srchExp.substring(0,srchLen-1)
}} val finExp =“”+“NPI”+“”+“”堆栈(15,"+srchExp + ") as (License,LicNumber,Code,State)“+”println(finExp) val retDF = npiDF.selectExpr(finExp) -不工作val retDF = npiDF.selectExpr(s"$finExp") -不工作val retDF = npiDF.selectExpr(finExp.toString) -不工作retDF }
我可以将finExp的结果复制并粘贴到selectExpr中,它工作得很好。但是,当我在上面标记的所有方式中使用val finExp时,我得到以下错误:
线程"main“org.apache.spark.sql.catalyst.parser.ParseException:不匹配输入',‘预期{,'(','.','[','ADD','AFTER','ALL','ALTER','AND',’AND‘,’AND‘,'ANY','ARCHIVE','AS','ASC','AT','AUTHORIZATION',’ALTER‘,’ALTER‘,’AND‘,’ANY‘,'ARRAY',’AS‘,’ASC‘,’AT‘,’ALTER‘,'BOTH',‘'BUCKETS','BY','CACHE','CASCADE','CASE','CAST','CHANGE','CHECK','CLEAR','CLUSTER','CLUSTERED','CODEGEN','COLLATE',’COLLATE‘,'COLLECTION','COLUMN','COLUMNS','COMMENT','COMMIT','COMPACT','COMPACTIONS','COST','CONSTRAINT',’COST‘,'CREATE','CROSS',‘'CUBE','CURRENT','CURRENT_DATE','CURRENT_TIME','CURRENT_TIMESTAMP','CURRENT_USER','DATA','DATABASE','DBPROPERTIES','DEFINED','DESC','DESCRIBE','DFS','DIRECTORY',’DIRECTORY‘,'DISTINCT','DIV','DROP','ELSE','END',’END‘,’DESCRIBE‘,‘'ESCAPED','EXCEPT','EXCHANGE','EXISTS','EXPLAIN','EXPORT','EXTENDED','EXTRACT',’EXTRACT‘,'FALSE','FETCH','FIELDS','FILTER','FILEFORMAT','FIRST','FOLLOWING','FOR','GRANT','FORMAT','FROM','FULL','FUNCTIONS',‘'GROUP','GROUPING','HAVING','IF','IGNORE','IMPORT','IN','INDEX',’INDEX‘,'INNER','INPATH','INPUTFORMAT','INSERT','INTERSECT','INTERVAL','INTO','IS','ITEMS','JOIN','KEYS','LAST',’LAST‘,'LAZY','LEADING','LEFT','LIKE',‘'LIMIT','LINES','LIST','LOAD','LOCAL','LOCKS','LOGICAL','MERGE','MAP','MATCHED',’MERGE‘,'MSCK','NAMESPACE',’NAMESPACE‘,'NATURAL','NO',NOT,'NULL',’NULL‘,'OF','ON','ONLY','OPTION','OPTIONS','OR',‘'ORDER','OUT','OUTER','OUTPUTFORMAT','OVERLAY','OVERWRITE','PARTITION','PARTITIONED',’PARTITION‘,’PARTITION‘,'PERCENT','PIVOT','PLACING','POSITION',’PLACING‘,'PRIMARY','PROPERTIES',’PROPERTIES‘,'PURGE',’OUTPUTFORMAT‘,'RECORDREADER','RECORDWRITER',’RECORDWRITER‘‘'REFERENCES','REFRESH','RENAME','REPAIR','REPLACE','RESET','RESTRICT','REVOKE','RIGHT',RLIKE,'ROLLUP','ROLE','ROLLBACK',’ROLLUP‘,'ROW','ROWS','SCHEMA','SELECT','SEMI',’SELECT‘,'SERDE','SERDEPROPERTIES','SESSION_USER','SET','MINUS','SETS',‘'SHOW','SKEWED','SOME','SORT','SORTED','START','STATISTICS','STORED','TABLE','STRUCT','SUBSTR','SUBSTRING',’TABLE‘,'TABLES','TABLESAMPLE','TBLPROPERTIES',TEMPORARY,'TERMINATED','THEN','TIME','TO','TOUCH','TRAILING','TRANSACTION',’TRANSACTION‘,'TRANSFORM','TRIM',‘'TRUE','TRUNCATE','TYPE','UNARCHIVE','UNBOUNDED','UNKNOWN','UNIQUE',’UNKNOWN‘,'UNLOCK','UNSET','UPDATE','USE','USER','USING','VALUES','VIEW','VIEWS','WHERE','WINDOW','WITH','ZONE',EQ,'<=>','<>','!=','<',LTE,'>',GTE,'+','-','*','/','%','&','|','||','^',字符串,标识符,BACKQUOTED_IDENTIFIER}(第1行,位置5)
== == "NPI","stack(15,‘许可证号1',Provider License Number_1,’提供商许可证号状态-^ Code_1 ',Provider License Number State Code_1,‘许可证号2',Provider License Number_2,’提供方许可证号状态Code_2 ',Provider License Number State Code_2,‘许可证号3',Provider License Number_3,’提供方许可证号状态Code_3 ',Provider License Number State Code_3,‘许可证号4',Provider License Number_4,’提供方许可证号状态Code_4 ',Provider License Number State Code_4,‘许可证号5',Provider License Number_5,‘提供商许可证号状态Code_5 ',Provider License Number State Code_5,’许可证号6',Provider License Number_6,‘提供商许可证号状态Code_6 ',Provider License Number State Code_6,’许可证号7',Provider License Number_7,‘提供商许可证号状态Code_7 ',Provider License Number State Code_7,’许可证号8',Provider License Number_8,‘提供商许可证号状态Code_8 ',Provider License Number State Code_8,’许可证号9',Provider License Number_9,‘提供商许可证号状态Code_9 ',<代码>D18,’许可证号10',Provider License Number_10,‘提供商许可证号状态Code_10 ',Provider License Number State Code_10,’许可证号11',Provider License Number_11,‘提供商许可证号状态Code_11 ',Provider License Number State Code_11,’许可证号12',Provider License Number_12,‘提供商许可证号状态Code_12 ',Provider License Number State Code_12,’许可证号13',Provider License Number_13,‘提供商许可证号状态Code_13 ',Provider License Number State Code_13,’许可证号14',Provider License Number_14,‘提供商许可证号状态Code_14 ',Provider License Number State Code_14,’许可证号15',Provider License Number_15,‘提供商许可证号状态Code_15 ',Provider License Number State Code_15) as (许可证,LicNumber,代码,状态)“
发布于 2021-11-29 17:04:14
解析异常错误是因为它无法解析",“
使用split(",")
例如:-
infa_seq_no=2
parseString ='infa_seq_no * 2 as output2,infa_seq_no * 3 as output3'
df.selectExpr(parseString.split(",")).printSchemahttps://stackoverflow.com/questions/69257817
复制相似问题